rsync는 Linux 환경에서 원격으로 파일을 복사할 때 가장 빠르고 정밀하게 제어할 수 있는 도구임
bash sudo apt install rsync
bash brew install rsync
/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 단위임