모든 리눅스에 기본적으로 설치되어 있다.
rsync 만 있으면 다른건 필요없을 정도로 막강한 기능을 자랑하고 있다.
rsync 는 "원본 디렉토리" 와 "대상 디렉토리" 를 동기화 시켜주는 역할뿐만 아니라,
심지어 다른 컴퓨터의 "원본 디렉토리" 와 "대상 디렉토리" 를 동기화할 수 있다.
"원본 디렉토리" 가 있는 컴퓨터에는 rsync 데몬을 실행하고,
"대상 디렉토리" 가 있는 컴퓨터에서 rsyn 로 동기화를 실행하면 된다.
rsync 데몬은 873 번 port 를 사용한다.
하지만, 데몬을 실행할 수 없는 환경이거나,
873 port 가 방화벽에 막혀있을 경우 ssh 를 사용해서 파일 전송이 가능하다.
% rsync -e ssh 계정@IP주소:원본경로/ 대상경로/
이런식으로 입력하면 된다.
예를 들어,
% rsync -e ssh pi@kimchki.pe.kr:/home/pi/ /homes/pi_bak/
rsync 는 보통 avz 옵션을 사용한다.
% rsync -avz -e ssh pi@kimchki.pe.kr:/home/pi/ /homes/pi_bak/
어떤 파일이 "원본 디렉토리" 에는 삭제되어서 "대상 디렉토리" 에도 삭제하고 싶다면,
% rsync -avz --delete -e ssh pi@kimchki.pe.kr:/home/pi/ /homes/pi_bak/
만약 전송과정을 출력하고 싶다면,
% rsync -avz --delete --progress -e ssh pi@kimchki.pe.kr:/home/pi/ /homes/pi_bak/
만약 ssh 가 22 번 port 가 아닌 10000 번 port 를 사용하고 있다면,
% rsync -avz --delete --progress -e 'ssh -p 10000' pi@kimchki.pe.kr:/home/pi/ /homes/pi_bak/
출처
http://funnylog.kr/439
http://gyuha.tistory.com/445
http://www.worldwalker.co.kr/entry/rsync-사용중-대상-서버의-ssh-포트가-변경-되었을-시