Verwenden von md5sum und Datum zum Aktualisieren von Dateien mit cp

Verwenden von md5sum und Datum zum Aktualisieren von Dateien mit cp

Ich cp -up --backup=tkopiere normalerweise Dateien von meinem Computer in die Cloud und umgekehrt, aber manchmal ändert sich das Datum für ein paar Minuten (oder ich schätze sogar Sekunden, da ich den gleichen Dateidatumsstempel sehe), wenn ich die kopierte Datei mit der Sicherungsdatei vergleiche. Beim Vergleich der MD5-Hash-Nummern beider Dateien sind sie gleich. Meine Frage ist also, ob es für jede Datei möglich ist, vor dem Erstellen der Kopie zunächst zu prüfen, ob die MD5-Hash-Nummer unterschiedlich ist, falls das Datum der zu kopierenden Datei neuer ist als das Datum der Datei im Ziel. Wenn beide die gleiche Nummer haben, die Datei nicht zu kopieren.

Antwort1

Verwenden Sie es rsyncmit dem -cFlag ( --checksum), das Dateien nach der Prüfsumme und nicht nach Änderungszeit und Größe vergleicht.

Beispiel

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

Beachten Sie, dass ich zwei identische Dateien zu zwei verschiedenen Zeitpunkten erstellt habe, ihre Prüfsummen jedoch identisch sind:

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: -

Verwendung von 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

Die Datei wurde nicht kopiert.

Ein anderer Lauf mit 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

Die Datei wurde kopiert.

verwandte Informationen