rsync 설정
서버 구성관련 내용을 정리하면서 백업에 꼭 필요한 rsync 설정을 테스트했다. 비교적 간단한 설정만으로 rsync를 사용할 수 있다는 게 놀랍다.
0. rsync 설치
centos에는 설치시에 기본적으로 설치가 되는 듯 하다. 설치가 되어 있는지 확인하려면 아래 명령어를 입력하면 된다.
# rpm -qa | grep rsync
설치되어 있지 않다면 yum 을 이용해 설치한다.
# yum install rsync
1. rsync 서버설정
rsync는 xinetd와 연동돼서 실행된다. 우선 rsync 설정을 변경한다.
# vi /etc/xinetd.d/rsync
# default: off
# description: The rsync server is a good addition to an ftp server, as it \
# allows crc checksumming etc.
service rsync
{
disable = yes
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
disable = yes 부분을 no로 수정한 후 저장한다. 다음으로 rsyncd.conf 파일을 추가 또는 수정한다.
# vi /etc/rsyncd.conf
[www1-data]
comment = www1 data backup
path = /home/www/data
uid = nobody
gid = nobody
use chroot = yes
read only = yes
host allow = 192.168.1.126
max connections = 5
timeout = 60
[www1-data] 서비스명으로 사용되는 부분으로 적절히 수정한다. path = /home/www/data는 백업할 소스 데이터가 있는 경로를 지정한다. host allow = 192.168.1.126 에서 rsync 서버에 접속할 수 있는 ip를 지정해준다. 다음으로 방화벽 설정에서 873번 포트를 오픈해준다.
# vi /etc/sysconfig/iptables
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 873 -j ACCEPT
서버의 설정은 끝났다. xinetd 와 iptables를 재시작해준다.
2. 클라이언트에서 rsync 사용
# rsync -avz --exclude 'session' 192.126.1.124::www1-data /home/www/data
위 명령어는 192.168.1.124 서버에 접속해 데이터를 /home/www/data 에 저장하는 것이다. exclude 로 session 을 지정했는데 백업시 session 디렉토리는 백업하지않는다. cron을 이용해 주기적으로 실행하면 백업이 자동으로 진행된다.