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