https://github.com/kmbfamily/menualbnr/blob/master/read%20me.txt

http://www.ciokorea.com/slideshow/16067

 

파일이랑 디비를 백업하려고 하는데 찾아보는데 좀 다 어렵네요. ;ㅁ;

잘안되는것도 있고요...

 

혹시 유용하게 쓸만한 서버 백업 프로그램 있을까요?

배치파일 만드는것도 몰라서 ㅠ_ㅠ;

  • Lv15
    리눅스 > 윈도우 인가요?
    아님 리눅스 > 리눅스인가요?
  • Lv15 Lv16
    우분투 리눅스 서버에서 서버 백업하려고요^^;
  • Lv16 Lv15

    외부 사이트긴 하지만 리눅스 > 리눅스 백업 할 때 쓰는 스크립트 입니다.

    웹 파일 백업은 rsnapshot을 사용합니다. 데이터베이스는 DB별로 따로 백업되도록 하였구요.

    https://studyforus.com/share/168109

  • Lv15 Lv16
    가입하고 로그인해도 권한이 없다고 나옵니다. ㅎ;
  • Lv16 Lv15
    앗. 그렇군요.

    일단 열람 권한을 모든 사용자로 변경하였습니다.
  • Lv15 Lv16
    감사합니다. 하나만 여쭙겠습니다.

    rsnapshot daily
    이건 저는 우분투 서버인데 자체적으로 있는게 아니라 따로 프로그램이 있는 건가봐요?

    이 부분만 혹시 이렇게 하면 파일 백업이 될까요?

    # Rsnapshot Backup Start
    tar zcvfp /backup/user.tar.gz /home/user/www/
  • Lv16 Lv15

    rsnapshot은 따로 설치 하셔야 합니다.

    우분투 사용하신다고 하셨으니 apt-get install rsnapshot 으로 설치하시고


    # nano /etc/rsnapshot.conf

     

    를 통해 rsnapshot.conf 파일을 수정합니다.

    먼저, ssh_cmd 에 있는 # 제거를 하시고 모든 backup 설정들에 #으로 주석처리 합니다.
    그리고 이런식으로 구문을 하나 추가하면 됩니다.

    backup (사용자)@(주소):/(경로) ./(백업경로)

    backup root@(접속할 주소):/var ./

    위에 원래 서버의 /var 폴더를 rsnapshot의 백업 폴더로 지정된 폴더에 저장하도록 지정합니다.
    이 때 주의해야 할 점은 각 사이 간격은 탭으로 입력(매우 중요!)합니다.

    rsnapshot.conf 파일 편집을 종료하신뒤에

    다음 명령어로 구문이 정상적으로 작동하는지 확인할 수 있습니다.
    # rsnapshot configtest

    이상이 없으면 다음 명령어로 백업 시작하면 됩니다.
    # rsnapshot alpha



    저는 rsnapshot.conf 파일에서 백업 간격의 alpha beta 등등 대신에 daily로 변경해서 사용중입니다.

    헷갈리시면 제 rsnapshot 설정 전부를 알려드릴게요.


    아참, 그리고 백업 서버에서 백업할 서버로 ssh 암호없이 접속할수 있도록 키값을 이용해 접속하도록 설정해주셔야 합니다.
    구글에서 "암호없이 ssh 접속" 검색하시면 많은 글들이 나옵니다!

  • Lv16 Lv15
    참고로 rsnapshot은 rsync를 이용한 증분 백업 프로그램입니다.

    Tar압축을 이용할거라면 rsnapshot관련 부분만 따로 하시면 됩니다. 
  • Lv15 Lv16
    지금 크론탭 설정이 제대로 안됐는지..
    주신 자료 그대로 sh 파일 만들어서 crontab -e 로 설정했는데 제대로 안 먹히고 있네요.
    구글링 좀 해봐야겠습니다. ㅠㅠ
  • Lv16 Lv15
    Cronyab -e 로 수정하는게 정석이긴 하지만 root권한으로 정상적으로 동작이 되지 않는 버그가 있습니다.

    /etc/crontab 파일을 직접 수정하시면 됩니다.
  • Lv15 Lv16

    20170726-8.png

    이렇게 설정했습니다.

    시간은 혹시 어디서 설정할 수 있나요?

  • Lv16 Lv15
    crontab daily 폴더에 말고
    vi /etc/crontab
    또는
    nano /etc/crontab
    을 이용해서 crontab 파일을 직접 수정해주셔야 합니다!
  • Lv15 Lv16
    crontab 폴더가 없는데 직접 만들면 되나요?
    우분투 서버입니다.
  • Lv16 Lv15
    폴더가 아니라 /etc 폴더에 있는 파일이름이 crontab 입니다.
  • Lv15 Lv16
    아하 감사합니다.
    00 10 * * * root /backup/backup.sh
    해당 파일에 이렇게 작성해넣었습니다.
    그럼 10시에 root 권한으로 /backup/backup.sh 쉘스크립트가 실행이 되는거죠?
    서버 재부팅안해도요?
  • Lv16 Lv15
    네. 이제 다 됐습니다.
    재부팅 안해도 됩니다. ^^
  • Lv15 Lv16
    음 @_@ 뭔가 아직 잘 안되는 부분이 있는데 모르겠네요.
    이젠 서버 용량도 가득 차서 자동 백업은 아직은 무리인가봅니다 ㅠ;
  • Lv16 Lv15
    rsnapshot 을 쓰시면 rsync를 이용한 차등 백업을 실시합니다.

    즉, 변경된 부분만 따로 업데이트를 하고 기존에 있던 파일을 계속 유지를 하는 것이기 때문에 용량 절감의 효과가 굉장히 큽니다.

    tar를 이용하면 압축과정에서 서버에 무리가 한번 가고 보관을 할 때도 용량을 계속 해당 용량만큼 차지하기 때문에 매일 백업하는 상황이라면 rsync나 rsnapshot 백업을 이용하는 것이 더 좋은 방법입니다.
  • Lv15 Lv37
    rsync는 괜찮은데 rsnapshot은 용량이 클 경우 서버에 상당히 무리가 됩니다. 소수의 큰 파일을 동기화할 때는 시간과 용량이 확실히 절약되지만, XE처럼 수만 개의 작은 파일을 생성하는 CMS에서는 그 갯수만큼 하드링크를 생성하는 거나 그냥 복사하는 거나 별 차이 없는 수준의 랜덤 액세스가 발생하거든요.

    SSD는 그나마 나은데, 용량이 큰 사이트는 백업용으로 HDD를 사용하는 경우 많아서 문제가 더 심각합니다. rsnapshot 때문에 하루에 6시간씩 HDD를 벅벅 긁는 서버도 봤어요.

    rsnapshot을 사용하려면 캐시 폴더, 포인트 캐시, 썸네일 등 언제든지 재생성할 수 있는 작은 파일이 잔뜩 모여 있는 폴더는 제외하고 백업하는 것이 좋습니다.
  • Lv15 Lv37

    root 권한으로 crontab -e 를 사용하면 root 권한으로 동작됩니다.

    정상적인 우분투 서버에서 이게 안 되는 경우는 본 적이 없습니다.

     

    (헐... 대댓글이 너무 깊이 들어가니까 엉뚱한 자리에 붙네요.)

  • Lv37 Lv15
    우분투 16.04 기준으로 root 계정에서 crontab -e 로 실행했는데 몇몇 명령어가 정상적으로 먹히지 않는 버그가 있습니다. (예를 들면 poweroff 라든지 시스템 종료에 관한 명령어들)

    그래서 직접 crontab 파일을 수정했습니다.
  • Lv37 Lv15
    그렇군요.

    원격으로 매번 20기가 이상, 120만개 이상의 파일들을 rsnapshot으로 백업을 하는데 아직까지는 괜찮은것 같습니다. (30분 안에 모든 백업이 완료가 됩니다.)
    나중에 용량이 더 커져서 심하게 버벅거리면 rsync를 이용해서 백업 시도해봐야 겠네요!
  • Lv15 Lv37
    아, poweroff 같은 건 곤란하죠 ㅋㅋㅋ
  • Lv15 Lv37

    SSD이거나 RAM이 넉넉하여 I/O 캐싱이 잘 된다면 20기가 정도는 괜찮아요. 문제가 되는 서버는 대개 용량이 수백기가씩 되거나 불필요한 캐시파일을 백업에 포함하는 경우입니다.

  • Lv37 Lv15
    아, 그럼 그게 버그가 아니라 원래 그런거였군요. ㅋㅋㅋ
  • Lv37 Lv15
    다시 확인해보니 100기가가 넘었었네요.

    백업에서 로그를 남기도록 수정해보고 시간이 얼마나 걸리나 다시 측정해봐야겠어요.


    기진곰님이 따로 알려주지 않으셨다면 나중에 모른채로 썼을뻔했습니다.
  • 분발을 해야겠다...................