rsync 초기 동기화

rsync 초기 동기화

저는 rsync를 처음 사용합니다. 외장 하드 드라이브(ext3)가 있는 Linux 컴퓨터와 NTFS 외장 하드 드라이브가 있는 Windows 컴퓨터가 있습니다. NTFS 하드 드라이브를 Linux 컴퓨터에 연결하고 ext3 드라이브에서 미러 복사본을 만들었습니다. 그 후 몇 가지 새 파일을 ext3 드라이브에 복사한 다음 NTFS를 Windows 시스템에 다시 연결하고 cygwin에서 다음을 실행했습니다.

rsync -Pratluvz user@linux_machine:/path/to/data /cygdrive/f/

가장 최근에 추가된 데이터를 제외하면 데이터가 동일하기 때문에 동기화가 매우 빠를 것으로 예상했습니다. 일반적인 라인은 다음과 같습니다.

Documents/path/to/file.ext
   2688670 100%  801.24kB/s    0:00:03 (xfer#1, to-check=2477/12876)

초기 동기화에는 복제본 자체만큼 시간이 걸립니다. 그러나 동기화를 중지하고 다시 시작하면 중단된 부분부터 시작됩니다. 첫 번째 동기화는 매니페스트와 파일 쓰기가 필요하기 때문에 특별합니까? 앞으로는 동기화가 더 빨라질까요? ("z" 매개변수를 아무런 효과도 없이 전환하고 "c" 매개변수를 제거했는데 도움이 되었습니다.)

편집: 소스 경로 끝에 "/"를 포함시켰기 때문에 데이터 폴더의 모든 내용이 복사되었지만 폴더 자체는 복사되지 않은 것으로 나타났습니다. 동기화를 중지하고 "/"를 제거했는데 원래 예상대로 작동했습니다.

답변1

Rsync는 대상 트리의 복사본이 대상 트리의 복사본과 동일하다고 판단되는 경우에만 파일 복사를 방지합니다. 기본적으로 파일 크기와 수정 시간이 동일하면 파일이 동일한 것으로 간주됩니다. rsync가 체크섬을 계산하도록 옵션을 전달할 수 있습니다 -c(대상 트리에서 전체 파일을 읽어야 하기 때문에 훨씬 느립니다). 양쪽에서 동일한 크기인 rsync 건너뛰기 파일을 만드는 옵션을 전달할 수 있습니다 --size-only. 이는 내용이 변경되었지만 새 버전이 이전 버전과 크기가 같은 파일을 건너뛰기 때문에 위험합니다.

처음 복사본을 만들 때 타임스탬프를 유지하지 않은 것 같습니다(예: 또는 cp -r대신 사용 ). 이런 일이 발생하면 rsync는 파일의 내용이 동일한지 알 수 없습니다. 실행이 끝나면 파일의 타임스탬프가 동일하므로 rsync는 해당 파일을 다시 복사하지 않는다는 것을 알게 됩니다.cp -rpcp -arsync -a

소스 및 대상 파일 시스템이 서로 다른 타임스탬프 세분성(예: 초 대 마이크로초)을 사용하기 때문에 타임스탬프도 다를 수 있습니다. 따라서 파일 수정 시간은 소스 측에서는 2014-12-10 08:54:32.123465와 비슷하지만 2014- 12-10 08:54:32 = 대상 측의 2014-12-10 08:54:32.000000). 이 경우 rsync가 이를 자동으로 감지하지 못하는 경우 이 옵션을 전달합니다 --modify-window. 예를 들어 --modify-window=1타임스탬프에 1초 허용 오차를 허용합니다.

관련 정보