rsync 는 서버간의 데이터를 동기화 할때 주로 사용하며 파일크기, 시간 변화등을 이용하여 동기화를 합니다.
FreeBSD 에서 ports 로 설치를 진행합니다.
[root@ruo91 ~]# cd /usr/ports/net/rsync && make install clean
설치가 완료 되면 /etc/rc.conf 에 rsync 를 사용 가능하도록 설정 해줍니다.
[root@ruo91 ~]# echo ‘rsyncd_enable=”YES”‘ >> /etc/rc.conf
설치된 디렉토리에 접근하여 rsyncd.conf 를 사용자 환경에 맞게 수정 해줍니다.
[root@ruo91 ~]# vi /usr/local/etc/rsyncd.conf
# 서비스명
[yongbok]
# rsync 할 디렉토리 설정
path = /home/ruo91/public_html
# nobody 권한으로 실행
uid = nobody
gid = nobody
# chroot 사용 여부
use chroot = yes
# 읽기만 가능
read only = yes
# 접속 가능 한 아이피 설정
hosts allow = 192.168.0.200
# 설명 부분
comment = ruo91 public_html copy that
# 최대 접속
MAX CONNECTIONS = 10
rsync 데몬을 실행합니다.
[root@ruo91 ~]# /usr/local/etc/rc.d/rsyncd start
Starting rsyncd.
rsync 프로세스를 확인을 합니다.
[root@ruo91 ~]# ps -aux | grep rsync
root 54890 0.0 0.2 3128 1604 ?? Is 6:36PM 0:00.02 /usr/local/bin/rsync –daemon
동기화 하고자 하는 서버에 rsync 명령어를 통해 데이터를 동기화 합니다.
rsync –avz 서버IP::서비스명 동기화 할 디렉토리 경로
rsync 옵션
-v verbose (자세하게 보여줌)
-a archive mode
-u update only(새로운 파일을 덮어쓰지 않음)
–delete 서버쪽에 없고 클라이언트쪽에만 있는 파일을 지움
-z compress (전송시 압축을 함)
–daemon 데몬 모드로 운영함 (이건 inetd.conf에 지정할 때 필요함)
-r recursive (하위 디렉토리까지 포함)
-l 심볼릭 링크 재생성
-p 퍼미션 업데이트
-t 변경시간 전송 (이것이 없으면 전송한 시간으로 바뀜)
-g 그룹이름 변경
사용 예
[root@ruo91 ~]# rsync -avz 192.168.0.100::yongbok /home/ruo91/public_html
receiving file list … done
./
hello.c
hello.tar.gz
sent 86 bytes received 488 bytes 1148.00 bytes/sec
total size is 282 speedup is 0.49
[root@ruo91 ~]# ls -al /home/ruo91/public_html
합계 24
drwxrwxrwx 2 1001 1001 4096 10월 14 18:30 .
drwx—— 4 ruo91 ruo91 4096 10월 14 07:18 ..
-rwxrwxrwx 1 1001 1001 82 10월 14 18:29 hello.c
-rwxrwxrwx 1 1001 1001 200 10월 14 18:30 hello.tar.gz