USB 플래시 드라이브에 대한 rsync는 항상 모든 데이터를 전송합니다.

USB 플래시 드라이브에 대한 rsync는 항상 모든 데이터를 전송합니다.

rsync새로 삽입된 외부 USB 플래시 드라이브에 디렉토리를 쓰는 경우

rsync -av /source/ /dest/

파일은 변경되지 않지만 모든 파일이 전송됩니다(즉, 다시 작성).

USB를 뽑았다가 다시 꽂은 후에만 파일을 덮어쓰게 됩니다. 중간에 드라이브를 분리하지 않고 이 rsync명령을 두 번 연속 실행하면 전체 디렉터리 내용을 성공적으로 건너뜁니다.

-u업데이트 옵션을 포함 하고 명시적으로 추가해도 -t아무 것도 변경되지 않습니다.

마운트 지점은 하드 드라이브 소스와 동일하게 유지됩니다(예: /media/user/<UUID>드라이브가 자동으로 마운트되고 xfce분명히 /dev/sdxy변경됨). ext4반면 USB vfatutf8문자 인코딩됩니다.

이 동작의 원인은 무엇입니까? /dev/이름변경 인가요 ? rsync실행할 파일 변경 사항을 올바르게 식별하는 방법은 무엇입니까 ? 이것이 없으면 백업에 몇 초밖에 걸리지 않습니다. 이제는 많은 양의 데이터가 반복적으로 덮어쓰기 때문에 항상 몇 분이 걸리며, 많은 쓰기 횟수가 플래시 드라이브의 기대 수명에 적합하지 않습니다.

답변1

FAT 드라이브는 2초의 정확도로 타임스탬프만 저장할 수 있습니다. 드라이브를 분리했다가 다시 연결하면 실제로 파일이 항상 파괴됩니다. --modify-window해결 옵션을 참조하세요 .

rsync -av --modify-window=1 /source/ /dest/

둘째 , rsync.cp

답변2

기본적으로 rsync는 수정 시간과 파일 크기를 기준으로 변경된 파일을 식별합니다. "vfat timestamp"를 Google에서 빠르게 검색하면 tz=UTC마운트 옵션과 관련된 몇 가지 질문이 표시됩니다.

외부 드라이브의 타임스탬프가 내부 드라이브의 타임스탬프와 다르기 때문에 rsync는 항상 파일이 다르다고 생각합니까? 이 경우 설치 옵션을 확인해야 합니다.

또는(실제로 내 이론이 맞는지 아닌지) -c해당 옵션을 사용하여 rsync를 실행해 볼 수 있습니다. 그러면 파일 내용의 해시를 통해 변경 사항을 확인할 수 있습니다. 이로 인해 속도가 느려질 수 있지만 실제 영향은 확실하지 않습니다.

답변3

나는 이 문제가 더 큰 파일에서 더 흔하다는 것을 알았습니다. [이것이 바로 제가 복사를 피하고 싶은 것입니다. ]

이 옵션에 대한 저렴한 대안은 다음을 -c사용하는 것입니다 --size-only.

rsync -av --size-only  .....

그러면 타임스탬프가 무시되고 크기 변경에 따라 복사만 됩니다. 체크섬을 사용하는 것만큼 정확하지는 않지만 백업에는 충분합니다.

관련 정보