본문으로 바로가기

rsync 원격 서버 백업 설정

category 서버&시스템/Linux 2012. 11. 16. 15:56

서버(마스터:파일을 제공) 설정

rsync와 xinetd 설치 유무를 확인하고 없으면 설치한다.

$ rpm -qa | grep rsync
$ rpm -qa | grep xinetd
# 없다면 설치
$ yum install -y rsync
$ yum install -y xinetd

 

rsync를 xinetd에서 실행시키기 위한 설정.

vi /etc/xinetd.d/rsync
...
service rsync
{
        disable = no             # yes > no로 수정
        socket_type = stream
...
}

 

rsyncd 설정 파일 생성.

각각의 서비스에 대한 프로필을 만든다.

vi /etc/rsyncd.conf
[update]                                # 서비스명. 임의로 정한다.
path = /home/update                     # 백업할 경로
comment = update.com img file
uid = root
gid = root
use chroot = yes
read only = yes
hosts allow = 111.60.215.6,111.60.215.7   # 접속을 허용할 클라이언트 ip
max connections = 2
timeout = 100                             # 필요 없으면 삭제

 

xinetd 재시작 후 873 포트 오픈 확인.

$ service xinetd restart
$ netstat -nlp | grep LISTEN

 

클라이언트(파일을 가져옴) 설정

서버와 마찬가지로 rsync가 없으면 설치하고, 서버에서 생성한 서비스명으로 요청한다.

정상적으로 파일이 받아진다면 crontab에 스케줄링 설정하여 주기적으로 동기화한다.

rsync 옵션 서버ip::서비스명 백업디렉토리
$ rsync -avzrt 111.60.215.5::update /home/update

 

rsync 옵션 설명

옵션 설명
-a archive mode 심볼릭 링크, 속성, 퍼미션, 소유권등을 보존한다.
-v verbose 진행상황을 상세하게 보여준다.
-z compress 전송시 압축을 수행한다.
-r recursive(하위 디렉토리까지 포함).
-t 변경시간 전송(이것이 없으면 전송한 시간으로 바뀜).
-u update only 새로운 파일을 덮어쓰지 않는다.
-e 복사를 위한 원격 접속 쉘 프로그램을 설정한다.
-delete 서버측에 없고 클라이언트측에만 있는 파일을 지운다.