Software Workshop

rsync는 Linux 환경에서 원격으로 파일을 복사할 때 가장 빠르고 정밀하게 제어할 수 있는 도구임

설치

서버 설정

/etc/rsyncd.conf나 /usr/local/etc/rsyncd.conf 파일을 작성해야 함

Linux의 경우, /etc, macOS의 경우, /usr/local/etc에 설정 파일이 위치해 있다고 가정함

모듈명
path=복사대상디렉토리경로
comment=설명
list=true or false
read only=true or false
uid=root

다음의 예제를 참고할 것

R
path=/home/userid
comment=my home directory
list=true
read only=false
uid=root

서버 실행 방법

설정 파일이 정상적으로 작성되었는지 모르겠다면 foreground daemon으로 실행할 수 있음

sudo rsync --daemon --no-detach

설정 파일이 정상적으로 작성되었는지 확인되었다면 background daemon으로 실행해두면 됨

sudo rsync --deamon

클라이언트 실행 방법

서버 호스트의 /home/userid 디렉토리 밑에 src 디렉토리가 존재한다고 가정하면

cd temp
rsync -avzr 서버호스트주소::R/src .

클라이언트 호스트의 temp 디렉토리에 src 디렉토리가 생성되고 서버 호스트의 /home/userid/src 디렉토리가 통째로 복사됨

반대로 서버 호스트에 파일을 업로드할 수도 있음

rsync -avzr test.tar.gz 서버호스트주소::R/src/test/

서버 호스트의 /home/userid/src/test 디렉토리에 test.tar.gz 파일이 업로드됨

rsync로 대용량 파일을 복사하다보면 네트웍이나 디스트 IO에 부하가 발생할 수 있는데, IO 대역폭을 제한할 수 있는 기능이 있음

rsync -avzr --bwlimit=1m 서버호스트주소::R/src .

초당 전송 속도를 1MB로 제한함. 단위 기호를 생략하면 KB 단위임