Hier ist mein Problem: Ich muss große Dateien (normalerweise jeweils 30 bis 40 GB) archivieren, um Dateien zu tarieren (bis zu 60 TB). Ich möchte vor der Archivierung Prüfsummen (md5, sha1, was auch immer) dieser Dateien erstellen. Es ist jedoch mehr oder weniger notwendig, nicht jede Datei zweimal zu lesen (einmal für die Prüfsumme, zweimal für das Tarieren), um eine sehr hohe Archivierungsleistung zu erzielen (LTO-4 möchte, dass 120 MB / s erhalten bleiben, und das Backup-Fenster ist begrenzt).
Ich brauche also eine Möglichkeit, um eine Datei zu lesen, ein Prüfsummen-Tool auf der einen Seite einzuspeisen und einen Teer auf der anderen Seite zu erstellen.
tar cf - files | tee tarfile.tar | md5sum -
Abgesehen davon, dass ich nicht die Prüfsumme des gesamten Archivs (dieser Beispiel-Shell-Code macht genau das), sondern eine Prüfsumme für jede einzelne Datei im Archiv haben möchte.
Ich habe GNU Teer, Pax, Star Optionen studiert. Ich habe mir die Quelle von Archive :: Tar angesehen . Ich sehe keinen offensichtlichen Weg, um dies zu erreichen. Es sieht so aus, als müsste ich etwas in C oder ähnlichem von Hand bauen, um das zu erreichen, was ich brauche. Perl / Python / etc bringt es einfach nicht auf den Punkt, und die verschiedenen tar-Programme vermissen die notwendige "Plugin-Architektur". Kennt jemand eine bestehende Lösung für dieses Problem, bevor ich mit der Code-Umstellung beginne?
7z
Ihnen können die Hash wählen und sie in einer Weise gedruckt , dass sha1sum
und sha256sum
verstehen können: 7zip.bugaco.com/7zip/7zip_15_09/MANUAL/cmdline/commands/... (und sami-lehtinen.net/blog/... ) Probieren Sie es aus: 7z h -scrcsha256 mydir/* | sed --regexp-extended 's, +[0-9]+ +, ,g' > mydir.sha256sum ; sha256sum -c mydir.sha256sum
(getestet mit p7zip Version 15.09 Beta)
tar