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