rsync로 두 디렉터리 동기화하기

2021년 4월 13일 수정

≡ 목차 (Table of Contents)

이 글은 rsync를 이용해 두 디렉터리를 동기화하는 방법을 간단히 설명한다.

결론부터

아래 커맨드로 두 디렉터리를 동기화할 수 있다.

rsync -aur source-dir/ destination-dir

source-dir/ 에만 끝에 / 가 붙어있는데 이는 의도된 것이다. 만약 이 / 가 없으면 두 디렉터리가 동기화되는 게 아니라 source-dirdestination-dir 안으로 복제된다.

옵션 소개

여기서 사용한 -aur 옵션은 아래의 세 가지 옵션이 합쳐진 것이다.

-a
Archive 모드다. 즉 파일의 모든 정보나 심볼릭 링크 등 파일과 관련된 메타데이터까지 완벽하게 복제하는 모드다. 시간으로 변경 여부를 파악하려면 꼭 필요하다. --archive 와 동일하다.
-u
시간을 비교해서 목적지의 파일이 더 최신이면 복제하지 않는다. 즉 수정된 파일만 복제하겠다면 꼭 필요한 옵션이다. --update 와 동일하다.
-r
Recursive 즉 하위 디렉터리도 몽땅 복제한다. 만약 하위 디렉터리가 없다면 빼도 관계는 없다. --recursive 와 동일하다.

즉 파일 시간을 기준으로 바뀌거나 혹은 새로 추가된 파일만 원격지에 복사하는 옵션을 사용하고 있다.

기타

만약 내용물의 변경을 꼭 체크해야 한다면 -c 혹은 --checksum 옵션을 참고하자. 이 옵션은 사이즈나 시간이 아니라 파일의 내용을 체크섬을 떠서 내용물이 변경 되었는지를 비교한다.