rsync 동기화할때 일부 알려진 파일목록만 빠르게 동기화 하기
비동기 방식의 rsync를 많이 사용합니다.
그런데 이게 실시간 동기화 방식이 아니다 보니 파일의 양이 많을때. .. 예를 들면 최소 1백만개 이상... 그냥 말이니까. 1억개라고 합시다. 이런 경우 내가 동기화시켜야할 파일 목록은 알고 있다고 할때 사용하는 방법에 대한것입니다.
rsync --help | grep files 명령을 내려보면 --files-from=FILE 이런 옵션이 있습니다.
이것을 사용하면 저 파일 목록에 있는것만 동기화 처리 하기 때문에 전체 디렉토리 순차적으로 읽어서 동기화 시키는 방식보다는 빠르게 처리 할 수 있습니다.
파일 목록을 만들어 줄때는 / (루트) 부분부터 만들어 주는것이 아니라 rsync 에서 지정해서 나오는 디렉토리 부터 만들어 주는것입니다. 즉, 우리가 rsync -av 하면 화면에 나오는 파일명이 있는데 이 때 화면에 보여지는 디렉토리 부터 만들어 주는것입니다. 이는 다른 옵션도 동일합니다. 특정 디렉토리만 제외하거나 파일등 제외할때도 그렇습니다.
즉, 동기화 처리해주는 디렉토리 하위 부분을 명시해 주는것입니다.
처음 해보시는 경우는 다른 디렉토리로 테스트 해보시면 좋습니다. 그리고 rsync에서 중요한것은 마지막에 / 있는것과 없는것은 다릅니다. /이 있으면 이 디렉토리 안에 있는것을 말하며 없으면 그 디렉토리 자체를 말합니다.