md5sum 및 날짜를 ​​사용하여 cp로 파일 업데이트

md5sum 및 날짜를 ​​사용하여 cp로 파일 업데이트

저는 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

파일이 복사되었습니다.

관련 정보