Rsync(Remote Synchronization)
Rsync란 파일이나 디렉토리를 로컬 시스템 또는 다른 네트워크상의 시스템 사이에 복사하기 위한 유틸리티입니다.
Rsync는 기본적으로 ssh를 이용해 파일을 전송하고, ssh와 같은 인증 메커니즘을 사용하므로, ssh와 같은 보안을 제공합니다.
서버 간 사용자가 원하는 특정 디렉토리 및 파일을 동기화 해줍니다.
1. Server 설정
# yum install -y rsync xinetd
# vi /etc/xinetd.d/rsync
# vi /etc/rsycd.conf
[서비스명 ]: 리소스 식별자, client에서 이용 client에게 알려줘야합니다. Path : 백업경로 미리 생성해 두어야합니다. Comment : 주석 Uid : 전송자 UID Gid : 전송자 GID Use chroot : yes로 설정시 path를 /로인식합니다. 보안기능중 한 개 Read only : 읽기 전용으로 접근합니다. Hosts allow : 접속 허용할 호스트 (클라이언트만 지정) Max connections : 동시접속자수 Timeout : 2~3초를 부여합니다. |
# vi /etc/sysconfig/iptables
# systemctl restart iptables
# systemctl restart rsyncd.service
2. Client 설정
# yum install -y rsync
# mkdir data
# mkdir data/rsync_test
# rsync -avz 115.68.248.211::rsync_test /data/rsync_test
test1.txt 파일을 받아왔습니다.
서버에 데이터를 추가하면 test2.txt와 hi 디렉터리를 추가로 가져옵니다.
서버에서 파일을 삭제해도 추가 파일만 동기화되기 때문에 따로 파일이 사라지지는 않습니다.
Rsync 옵션
-
-v : verbosity를 높이는 옵션으로 복사하는 과정을 더 자세하게 보여줍니다.
-
-z : compress를 주는 옵션으로 파일을 복사할 때 압축해서 복사합니다.
-
-h : 사람이 읽기 쉬운 형태로 복사 결과들을 출력해줍니다.
-
-a (same as -rlptgoD) : archive 모드로 -rlptgoD 옵션을 적용한것과 같습니다. 해당 옵션들은 아래서 설명하며 symlink, 권한 그리고 timestamp와 같은 속성들을 그대로 복사합는 옵션입니다.
-
-r : 디렉토리를 복사할 때 사용하는 옵션입니다.
-
-l : symlink는 symlink 형태로 복사하는 옵션입니다.
-
-p : 파일과 디렉토리들의 권한을 유지하는 옵션입니다.
-
-t : 수정시간을 유지하는 옵션입니다.
-
-g : 그룹 속성을 유지하는 옵션입니다.
-
-o : 소유자 속성을 유지하는 옵션입니다.
-
-D (same as –devices –specials) : –devices –specials)의 옵션과 같습니다.
-
–devices : root 권한이 필요하며 Device 관련된 파일들을 복사해서 생성해줍니다.
-
–specials : named socket이나 fifo와 같은 특수한 파일들도 복사하는 옵션입니다.
-
–progress : 전송 진행상황을 표시
-
–stats : 결과 보고
-
–delete : 원본 서버에 없는 파일은 백업 서버에서 삭제
-
–exclude : 제외할 파일 지정
-
–bwlimit : 대역폭(복사속도) 제어
-
–daemon : rsync를 데몬 모드로 실행
-
–max-size : 특정 크기 이상 파일 제외 (rsync 2.6.4 버전부터 추가된 옵션)
-
–min-size : 특정 크기 이하 파일 제외 (rsync 2.6.7 버전부터 추가된 옵션)
아래 블로그 참조하였습니다.