rsync
새로 삽입된 외부 USB 플래시 드라이브에 디렉토리를 쓰는 경우
rsync -av /source/ /dest/
파일은 변경되지 않지만 모든 파일이 전송됩니다(즉, 다시 작성).
USB를 뽑았다가 다시 꽂은 후에만 파일을 덮어쓰게 됩니다. 중간에 드라이브를 분리하지 않고 이 rsync
명령을 두 번 연속 실행하면 전체 디렉터리 내용을 성공적으로 건너뜁니다.
-u
업데이트 옵션을 포함 하고 명시적으로 추가해도 -t
아무 것도 변경되지 않습니다.
마운트 지점은 하드 드라이브 소스와 동일하게 유지됩니다(예: /media/user/<UUID>
드라이브가 자동으로 마운트되고 xfce
분명히 /dev/sdxy
변경됨). ext4
반면 USB vfat
는 utf8
문자 인코딩됩니다.
이 동작의 원인은 무엇입니까? /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 .....
그러면 타임스탬프가 무시되고 크기 변경에 따라 복사만 됩니다. 체크섬을 사용하는 것만큼 정확하지는 않지만 백업에는 충분합니다.