파일의 타임스탬프가 다르기 때문에 Rsync가 모든 파일을 다시 보냅니다(1초 차이?).

파일의 타임스탬프가 다르기 때문에 Rsync가 모든 파일을 다시 보냅니다(1초 차이?).

저는 rsync를 사용하여 Mac 노트북의 파일을 Windows 노트북의 USB 드라이브(exFAT)로 백업하고 있습니다. USB 드라이브는 내 홈 네트워크 내에서 공유되고 내 Mac에 마운트됩니다.

파일을 수정하기 위해 아무것도 하지 않았음에도 rsync가 모든 파일을 다시 보낼 때 이상한 문제를 발견했습니다.

전원을 켜면 모든 파일의 출력에 --itemize-changes해당 내용이 t표시되어 파일 타임스탬프가 재전송 이유임을 나타냅니다.

>f..t.... netstat.txt

ls -lT(macOS)은 파일 간의 1초 차이를 보여주는 초 형식의 타임스탬프를 나타내며 소스는 더 최신입니다.

$ ls -lT source/file.txt 
-rwxr-----  1 user  group  1176 Sep 19 22:32:59 2014 file.txt
$ ls -lT destination/file.txt 
-rwx------  1 user  group  1176 Sep 19 22:32:58 2014 file.txt

rsync에 옵션을 추가하면 -c타임스탬프 차이를 무시하고 불필요한 전송을 건너뛰었습니다. 그러나 소스 파일과 대상 파일의 타임스탬프 차이가 1초인 이유를 알고 싶습니다.

답변1

파일 시스템이 시간을 다르게 처리할 수 있다는 것을 알고 있으므로 이것이 불일치의 원인일 가능성이 높습니다. 를 사용하여 Mod-Time 비교의 임계값을 조정할 수 있습니다 --modify-window.

# Ignore up to a 5 second difference. Tighten up as desired.
rsync --modify-window=5 do whatever...

자세한 내용은 다음에서 확인할 수 있습니다.Rsync 매뉴얼 페이지.

--수정 창

두 개의 타임스탬프를 비교할 때 rsync는 타임스탬프가 수정 창 값만큼만 다른 경우 타임스탬프를 동일한 것으로 간주합니다. 이는 일반적으로 0(정확한 일치의 경우)이지만 일부 상황에서는 이 값을 더 큰 값으로 설정하는 것이 유용할 수 있습니다. 특히, MS Windows FAT 파일 시스템(2초 해상도로 시간을 나타냄)과 주고받을 때,--수정-창=1유용합니다(시간이 최대 1초까지 다를 수 있음).

관련 정보