우리는 이를 사용하여 rsync
하나의 외부 드라이브를 다른 드라이브에 백업합니다. 두 드라이브가 모두 Ubuntu 시스템에 연결되면 완벽하게 작동합니다.
rsync -avzh --exclude='_quarantine' /media/archive00/ /media/archiveX/archive00/
그러나 SSH를 통해 로컬 서버에 연결된 동일한 드라이브에서 동일한 작업을 수행하려고 하면 업데이트 시간이 다른 파일만 업데이트하는 대신 매번 모든 파일을 복사하려고 시도합니다.
rsync -avzh -e ssh --exclude='_quarantine' /media/archive00/ [email protected]:/media/archiveX/archive00/
옵션을 포함할 때 처음 10줄은 다음과 같습니다 -i
.
sending incremental file list
.d..t...... BTEVC/
<f..t...... BTEVC/Untitled41.mov
<f..t...... BTEVC/UntitledX100.mov
<f..t...... BTEVC/gfxCardStatus-2.3.zip
<f..t...... BTEVC/BTEVCformBook/aud.ECPP.SCAmp/0d20180825203546p+13057989928.m4a
<f..t...... BTEVC/BTEVCformBook/aud.ECPP.SCAmp/0d20180826210032p+13057989928.m4a
<f..t...... BTEVC/BTEVCformBook/aud.ECPP.SCAmp/0d20180827174045p+18002662278.m4a
<f..t...... BTEVC/BTEVCformBook/aud.ECPP.SCAmp/0d20180904171935p+12123769623.m4a
<f..t...... BTEVC/BTEVCformBook/aud.ECPP.SCAmp/0d20180905190057p+18593229553.m4a
답변1
근본적인 질문은 "두 드라이브 모두 exFAT로 포맷되었습니다."(에서논평).
이것exFAT 파일 시스템타임스탬프는 2초 해상도로만 유지될 수 있으므로 rsync
이를 알려주어야 합니다.
다행히도 이러한 부정확성을 관리할 수 있는 옵션이 있습니다.
--modify-window
두 개의 타임스탬프를 비교할 때 rsync는 타임스탬프가 수정 창 값 이상 차이가 나지 않는 경우 타임스탬프를 동일한 것으로 간주합니다. 일반적으로 0(정확한 일치의 경우)이지만 경우에 따라 더 큰 값으로 설정하는 것이 유용할 수도 있습니다. 특히 - 는 MS Windows FAT 파일 시스템(2초 해상도로 시간을 표시함)으로 전송할 때modify-window=1
유용합니다 (시간은 최대 1초까지 다를 수 있음).
노력하다 rsync --modify-window=1 ...
.
답변2
출력에서:
<f..t...... BTEVC/Untitled41.mov
소문자는 t
rsync가 소스와 일치하도록 대상의 시간을 설정하려고 함을 나타냅니다. 그 이후의 모든 항목은 f
비어 있어 일치함을 나타냅니다(따라서 사용자 권한이 이유라고 생각할 필요가 없습니다).
달리기 전후의 시간을 조사하여 어떻게 다른지 확인할 수 있습니다.
제안:
- 노력하다
--inplace
. 어떤 변화가 있는지 확인하세요 단일 파일을 복제하여(출력이 더 작아짐) 자세한 내용을 늘립니다.
-vvv
전송 시간을 다음과 같이 설정하려고 시도하는 것을 볼 수 있습니다 .[...] recv mapped dest.file of size 598 got file_sum set modtime of .dest.file.5s3OoJ to (1573876681) Fri Nov 15 19:58:01 2019 renaming .dest.file.5s3OoJ to dest.file [...]
해당 지점 근처에서 이상한 것이 보고되었는지 확인하십시오(및 후속 실제 타임스탬프가 일치하는지).
$ stat dest.file
File: dest.file
Size: 598 Blocks: 1 IO Block: 65536 regular file
Device: 8788005h/142114821d Inode: 19140298416802240 Links: 1
Access: (0755/-rwxr-xr-x) Uid: (197609/ compusr) Gid: (197121/ None)
Access: 2019-11-15 20:26:49.597544100 -0800
Modify: 2019-11-15 19:58:01.309978600 -0800
Change: 2019-11-15 20:26:49.598968100 -0800
Birth: 2019-11-15 20:26:49.594376800 -0800
답변3
"-u" 옵션을 사용하는 것은 어떻습니까? 그러면 최신 파일만 업데이트됩니다.
"-a" 옵션은 다음 옵션만 설정합니다.
-a, --archive archive mode; equals -rlptgoD (no -H,-A,-X)
...
-r, recursive
-l, links
-p, perms
-t, times
-g, groups
-o, owner
-D, device specials
"-u" 옵션을 사용하여 새 파일을 복사하는 데 문제가 발생한 적이 없습니다. 따라서 다음과 같아야 합니다.
rsync -avzhu -e ssh --exclude='_quarantine' /media/archive00/ [email protected]:/media/archiveX/archive00