리눅스 / rsync / 동기화 프로그램
Created 2018-04-11
Last Modified 2024-01-05
rsync는 동기화 프로그램이다. 백업할 때 유용하게 사용할 수 있다.
사용법
기본
- abc 디렉토리 안의 def 디렉토리를 xyz 디렉토리 안에 동기화시킨다.
- 처음 실행하는 것이라면 xyz 디렉토리 안에 def 디렉토리가 복사된다.
- 다시 실행시키면 /abc/def 디렉토리의 내용 중 수정되거나 추가된 것만 /xyz/def 디렉토리로 복사된다.
- /abc/def에서 삭제된 내용은 /xyz/def에 반영되지 않는다.
# rsync -avz /abc/def /xyz
- def 뒤에 /를 붙이면 def 디렉토리 안에 있는 폴더와 파일들만 동기화된다. 즉, xyz 디렉토리 안에 def 디렉토리가 생기지 않는다.
# rsync -avz /abc/def/ /xyz
삭제 파일도 동기화하기
- --delete 옵션을 추가하면, /abc/def에서 삭제된 것은 /xyz/def에서도 삭제된다.
# rsync -avz --delete /abc/def /xyz
특정 디렉토리 제외하기
- abc 디렉토리 안에 있는 abc-2 디렉토리를 제외하고 동기화한다.
# rsync -avz --exclude 'abc-2' abc xyz
다른 서버와 동기화
- ssh로 다른 서버에 접속하여 동기화할 수 있다.
- 도메인 대신 IP를 적어도 되고, 같은 네트워크에 있다면 호스트네임을 적어도 된다.
# rsync -avz --delete -e ssh root@abc.com:/abc/def /xyz
- ssh 포트를 다른 것으로 사용할 수 있다.
# rsync -avz --delete -e "ssh -p 2345" root@abc.com:/abc/def /xyz
sshpass
- sshpass를 이용하면 비밀번호 입력을 따로 할 필요가 없다.
# rsync -avz --delete /abc/def --rsh="sshpass -p password ssh -p 2345" root@abc.com:/xyz