저는 cp -up --backup=t
컴퓨터에서 클라우드로 파일을 복사하고 그 반대로 복사하는 데 사용하지만, 복사된 파일과 백업 파일을 비교할 때 때로는 날짜가 몇 분 동안(또는 동일한 파일 날짜 스탬프를 보면 몇 초라도 변경되는 것으로 추측됩니다) 변경됩니다. 두 파일의 md5 해시 번호를 비교하면 동일합니다. 그래서 내 질문은 각 파일에 대해 가능한지, 복사할 파일 날짜가 대상에 있는 파일 날짜보다 최신인 경우 복사하기 전에 먼저 md5 해시 번호가 다른지 확인하고, 둘 다 동일한 번호를 가지고 있으면 파일을 복사하지 마십시오.
답변1
수정 시간과 크기가 아닌 체크섬으로 파일을 비교하는 플래그( ) rsync
와 함께 사용합니다 .-c
--checksum
예
root@node51 [/tmp]# mkdir source
root@node51 [/tmp]# mkdir destination
root@node51 [/tmp]# echo "version 1" > source/file.txt
root@node51 [/tmp]# sleep 1
root@node51 [/tmp]# echo "version 1" > destination/file.txt
두 개의 서로 다른 시간에 두 개의 동일한 파일을 생성했지만 해당 파일의 체크섬은 동일합니다.
root@node51 [/tmp]# md5sum */file.txt
81127ad129dd2249f5ab0667ca0aeb84 destination/file.txt
81127ad129dd2249f5ab0667ca0aeb84 source/file.txt
root@node51 [/tmp]# stat */file.txt
File: 'destination/file.txt'
Size: 10 Blocks: 1 IO Block: 512 regular file
Device: 15h/21d Inode: 674358 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2016-08-10 13:14:12.710354355 -0500
Modify: 2016-08-10 13:14:12.710354355 -0500
Change: 2016-08-10 13:14:12.710354355 -0500
Birth: -
File: 'source/file.txt'
Size: 10 Blocks: 1 IO Block: 512 regular file
Device: 15h/21d Inode: 674234 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2016-08-10 13:14:07.198447196 -0500
Modify: 2016-08-10 13:14:07.198447196 -0500
Change: 2016-08-10 13:14:07.198447196 -0500
Birth: -
사용 rsync -avcP
:
root@node51 [/tmp]# touch source/file.txt
root@node51 [/tmp]# rsync -avcP source/ destination/
sending incremental file list
./
sent 87 bytes received 22 bytes 218.00 bytes/sec
total size is 10 speedup is 0.09
파일이 복사되지 않았습니다.
다음을 사용하여 다른 실행 rsync -avP
:
root@node51 [/tmp]# touch source/file.txt
root@node51 [/tmp]# rsync -avP source/ destination/
sending incremental file list
file.txt
10 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=0/2)
sent 123 bytes received 35 bytes 316.00 bytes/sec
total size is 10 speedup is 0.06
파일이 복사되었습니다.