Tip & Tech

rsnapshot 이용한 원격 증분 백업

event2017-09-14 2929 views

1. rsnapshot 설치
# yum -y install epel-release

# yum -y install rsnapshot


2.직접 다운받아서 설치 할 때

-wget http://www.rsnapshot.org/downloads/rsnapshot-1.4.2-2.el6.noarch.rpm
(170914 현재 1.4.2-2 가 최신버전임)
#rpm -ivh rsnapshot-1.4.2-2.el6.noarch.rpm(rsync 없으면 의존성 걸림)

3. 설정 수정
# vi /etc/rsnapshot.conf

snapshot_root    /backup/

cmd_cp  =>주석 해제
#cmd_ssh  =>원격에서 백업 받을 경우 주석 해제

#retain  alpha   6 =>주석처리(retain 고유값, 보관 갯수 형식으로, cron에서 원하는 주기로 실행 )
#기본으로 7일 4주 보관
retain daily 7
retain weekly 4


### LOCALHOST
backup    /etc/    localhost/

### REMOTE(백업 설정 시 반드시 공백 없애고, 탭으로 구분해야 함)
# server1 - ip: 192.168.0.101, ssh port: 22
backup    root@192.168.0.101:/home/    server1/    +rsync_long_args=--bwlimit=4096
backup    root@192.168.0.101:/etc/    server1/    +rsync_long_args=--bwlimit=4096
#backup    root@192.168.0.101:/usr/local/    server1/    +rsync_long_args=--bwlimit=4096
#backup    root@192.168.0.101:/opt/    server1/    +rsync_long_args=--bwlimit=4096
backup    root@192.168.0.101:/root/    server1/    +rsync_long_args=--bwlimit=4096
#backup    root@192.168.0.101:/var/named/    server1/    +rsync_long_args=--bwlimit=4096
backup    root@192.168.0.101:/var/lib/mysql/    server1/    +rsync_long_args=--bwlimit=4096

# server2 - ip: 192.168.0.102, ssh port: 2222
backup_script    /usr/bin/ssh root@192.168.0.102 "/home/.mysql-backup/php79-remote-mysql-backup.sh"    server2/.remote-mysql-backup
backup    root@192.168.0.102:/home/    server2/    +rsync_long_args=--bwlimit=4096,+ssh_args=-p 2222
backup    root@192.168.0.102:/etc/    server2/    +rsync_long_args=--bwlimit=4096,+ssh_args=-p 2222
#backup    root@192.168.0.102:/usr/local/    server2/    +rsync_long_args=--bwlimit=4096,+ssh_args=-p 2222
#backup    root@192.168.0.102:/opt/    server2/    +rsync_long_args=--bwlimit=4096,+ssh_args=-p 2222
backup    root@192.168.0.102:/root/    server2/    +rsync_long_args=--bwlimit=4096,+ssh_args=-p 2222
#backup    root@192.168.0.102:/var/named/    server2/    +rsync_long_args=--bwlimit=4096,+ssh_args=-p 2222
backup    root@192.168.0.102:/var/lib/mysql/    server2/    +rsync_long_args=--bwlimit=4096,+ssh_args=-p 2222

+rsync_long_args=--bwlimit=4096: 운영 장비의 디스크 I/O, 네트워크 대역폭을 고려하여, 최대 4MB/s 속도로 백업합니다.
+ssh_args=-p 2222: 운영 장비의 SSH 접속포트가 2222처럼 22가 아닐 경우, 별도로 선언해주어야 합니다.
192.168.0.101, 192.168.0.102 는 임의로 정한 서버 IP 이므로, 실제 운영 서버 IP로 변경하셔야 합니다.

# rsnapshot configtest
Syntax OK

4. 운영 서버로 ssh 접속시, 비밀번호 생략 처리
4-1. 백업장비 root 계정의 공개키 확인
# ls -l  ~/.ssh/id_rsa.pub
ls: cannot access /root/.ssh/id_rsa.pub: 그런 파일이나 디렉터리가 없습니다

4-2 없으므로 공개키 생성
#ssh-keygen (이후 default값으로 엔터 3연타)

4.3 운영서버로 공개키 전송

# ssh-copy-id root@192.168.0.101
포트가 다를 경우 ssh-copy-id -p 2222 root@192.168.0.101

4.4 비밀번호 없이 백업에서 운영서버로 로그인 체크

5. 백업 테스트
# rsnapshot -t daily

6. 백업 실행
# rsnapshot daily

7. 이상 없으면 크론 등록 및 점검결과 관리 계정으로 mail 발송

crontab -e

5   4   *  *  * root    /usr/bin/rsnapshot daily
5   3   *  *  1 root    /usr/bin/rsnapshot weekly
5   2   1  *  * root    /usr/bin/rsnapshot monthly

 

참고 : https://github.com/php79/backup/blob/master/docs/remote-incremental-backup.md

클립보드에 복사되었습니다.