rsync로 두 디렉터리 동기화하기
2021년 4월 13일 수정
≡ 목차 (Table of Contents)
이 글은 rsync를 이용해 두 디렉터리를 동기화하는 방법을 간단히 설명한다.
결론부터
아래 커맨드로 두 디렉터리를 동기화할 수 있다.
rsync -aur source-dir/ destination-dir
source-dir/
에만 끝에 /
가 붙어있는데 이는 의도된 것이다. 만약 이 /
가 없으면 두 디렉터리가 동기화되는 게 아니라 source-dir
이 destination-dir
안으로 복제된다.
옵션 소개
여기서 사용한 -aur
옵션은 아래의 세 가지 옵션이 합쳐진 것이다.
-a
- Archive 모드다. 즉 파일의 모든 정보나 심볼릭 링크 등 파일과 관련된 메타데이터까지 완벽하게 복제하는 모드다. 시간으로 변경 여부를 파악하려면 꼭 필요하다.
--archive
와 동일하다. -u
- 시간을 비교해서 목적지의 파일이 더 최신이면 복제하지 않는다. 즉 수정된 파일만 복제하겠다면 꼭 필요한 옵션이다.
--update
와 동일하다. -r
- Recursive 즉 하위 디렉터리도 몽땅 복제한다. 만약 하위 디렉터리가 없다면 빼도 관계는 없다.
--recursive
와 동일하다.
즉 파일 시간을 기준으로 바뀌거나 혹은 새로 추가된 파일만 원격지에 복사하는 옵션을 사용하고 있다.
기타
만약 내용물의 변경을 꼭 체크해야 한다면 -c
혹은 --checksum
옵션을 참고하자. 이 옵션은 사이즈나 시간이 아니라 파일의 내용을 체크섬을 떠서 내용물이 변경 되었는지를 비교한다.