Ich speichere alle meine digitalen Fotos an ein paar Orten. Ich habe den Befehl cp verwendet, mich aber angesichts des persönlichen Werts gefragt, ob es einen zuverlässigeren Weg gibt. Ich bin kein Unbekannter für Linux, Bash, Perl usw., also könnte ich etwas schreiben, um md5-Hashes zu kopieren und zu vergleichen, aber ich habe mich gefragt, ob etwas bereits existiert (Neuerfindung, Räder und was nicht).
Die meisten meiner Kopier- und Überprüfungsvorgänge (| valid | check | hash | confirm) führen zu rsync. Soweit ich das beurteilen kann, verwendet rsync jedoch nur Hashes, um festzustellen, ob eine Datei aktualisiert werden muss. Anschließend wird kein Hash-Vergleich durchgeführt.
Für diesen Zweck sind die Dateien binär und in der Regel 8-10 MB groß. Alle Empfehlungen für Dienstprogramme oder Anleitungen für DIY-Lösungen wäre sehr dankbar.
Antworten:
Von
man rsync
, unter-c
Option:-c, --checksum: Überspringe basierend auf der Checksumme, nicht der Mod-Zeit und der Größe
quelle
Vor einigen Jahren hatte ich die gleichen Anforderungen wie Sie. Die von mir gewählte Lösung bestand darin, ZFS über den ZFS-FUSE-Treiber auf meinem Speicherserver zu verwenden. Ich dachte, dass meine persönlichen Fotos, gescannten Dokumente und andere ähnliche Dateien Dinge sind, auf die ich nur gelegentlich zugreifen kann. Es kann also sehr lange dauern, etwa ein Jahr oder länger, bis ich feststelle, dass eine Datei aufgrund von beschädigt wurde ein Laufwerksfehler oder dergleichen.
Zu diesem Zeitpunkt sind alle Sicherungskopien, die ich habe, möglicherweise diese Version der Datei (en).
ZFS hat gegenüber RAID-5 den Vorteil, dass es Fehler in den auf den einzelnen Datenträgern gespeicherten Daten erkennen und beheben kann, auch wenn die Laufwerke beim Lesen der Daten keinen Lesefehler melden. Über Prüfsummen erkennt es, dass eine der CDs fehlerhafte Informationen zurückgegeben hat, und verwendet die Redundanzdaten, um diese CD zu reparieren.
Aufgrund der Art und Weise, wie die Prüfsumme in ZFS aufgebaut ist, konnte ich mich darauf verlassen, dass selten verwendete Daten über einen längeren Zeitraum hinweg gespeichert werden. Jede Woche führe ich ein "zpool scrub" durch, das alle Daten erneut liest und die Prüfsummen überprüft.
ZFS-FUSE hat sich in den letzten Jahren für mich sehr gut entwickelt.
In der fernen Vergangenheit habe ich für einen Client ein Datenbanksystem implementiert, das Prüfsummeninformationen für alle Dateien speichert, die in einem bestimmten Verzeichnis gespeichert sind. Ich hatte dann ein anderes Skript, das regelmäßig ausgeführt und die Datei anhand der in der Datenbank gespeicherten Prüfsumme überprüft wurde. Damit konnten wir schnell eine beschädigte Datei erkennen und von Backups wiederherstellen. Wir haben im Grunde die gleichen Arten von Prüfungen implementiert, die ZFS intern durchführt.
quelle
https://sourceforge.net/projects/crcsum/ Es erweitert Linux cp & mv um die Überprüfung der Prüfsumme
quelle
Ich habe dieses Dienstprogramm gefunden (Linux und Windows), das genau das tut, was Sie wollen (Hash-Kopie + Hash-Überprüfung mit Protokoll): http://sourceforge.net/projects/quickhash/
Der einzige Nachteil ist, dass es nur als GUI existiert (kein Kommandozeilenzugriff)
quelle
Wenn Sie die Datei lokal kopieren (wie durch Ihren Verweis auf
cp
anstelle vonscp
etc angedeutet ), dann nurcmp
die Quell- und Zieldateien ... aber realistisch, wenncp
kein Fehler ausgegeben wird (entweder in der Befehlszeile oder in der Rückgabewert der Ausführung) gibt es keinen Grund zu der Annahme, dass es nicht funktioniert.Wenn Sie in der Tat ein redundantes Backup benötigen, ziehen Sie eine Remote-Lösung wie Dropbox in Betracht .
quelle