Pflegen Sie eine Hashcode- (Checksum-) Datei differentiell

364
Magnus Andersson

Angenommen, Sie haben eine Dateihierarchie mit einer Million Dateien (dies könnte eine Sicherung sein).

Wie in https://askubuntu.com/questions/318530/generate-md5-checksum-for-all-files-in-a-directory beschrieben, können Sie mit einem der folgenden Befehle eine "checklist.chk" -Datei erstellen Hashcode und Name in jeder Zeile:

md5sum * > checklist.chk # Doesn't go down sub directories # or find -type f -exec md5sum "{}" + > checklist.chk # Do go down sub directories 

Dann können Sie die Dateien überprüfen, die Sie verwenden können:

md5sum -c checklist.chk 

Nehmen Sie jetzt an, Sie haben nur ein paar dieser Millionen Dateien geändert (vielleicht weil Sie Rsync verwendet haben). Dann ist es unnötig, alle Hashcodes neu zu berechnen.

Ich suche etwas (ein Programm, Skript oder was auch immer), das eine "checklist.chk" -Datei mit vier Spalten verwendet: Hashcode, Änderungsdatum, Größe und Name in jeder Zeile. Ähnlich wie bei rsync werden Dateien übersprungen, deren Größe / Änderungsdatum sich nicht geändert hat.

Dann sollten Sie zu einem späteren Zeitpunkt natürlich die Integrität der Dateien überprüfen, indem Sie etwas aufrufen, das '' 'md5sum -c checklist.chk' '' entspricht.

Oder gibt es bessere Wege, um dieses ganze Problem zu lösen?

-1
Sie stellen eine Off-Topic-Frage (Software-Shopping). Fragen, die Produkt-, Service- oder Lernmaterialempfehlungen suchen, sind nicht thematisch. Siehe [Zum Thema] (https://superuser.com/help/on-topic). Versuchen Sie es mit https://softwarerecs.stackexchange.com/, aber lesen Sie zuerst [Was ist erforderlich, damit eine Frage "genug Informationen enthält"] (https://meta.softwarerecs.stackexchange.com/questions/336/what-is- Erforderlich-für-eine-Frage-enthalten-genug-Informationen). DavidPostill vor 8 Jahren 0
Es ist schwer zu verstehen, was Sie nicht einfach mit 'rsync' verwenden. David Schwartz vor 8 Jahren 0
@DavidSchwartz Wenn Sie --checksum in rsync verwenden, berechnet es für jede Datei eine Prüfsumme, die meiner Erfahrung nach um das 50-fache langsamer wird. Magnus Andersson vor 8 Jahren 0
@DavidSchwartz Auch die Absenderseite kann beschädigt werden. Ich möchte die Integrität von Sender und Empfängerseite überprüfen können. Magnus Andersson vor 8 Jahren 0

1 Antwort auf die Frage

0
Magnus Andersson

Also habe ich mein eigenes Programm geschrieben: https://github.com/emandersson/hashcodefilesync, das die oben genannten Schritte ausführt (beschleunigt die Aktualisierung der Hash-Datei).