Voici mon problème: j'ai besoin d'archiver dans des fichiers tar beaucoup (jusqu'à 60 To) de gros fichiers (généralement de 30 à 40 Go chacun). Je voudrais faire des sommes de contrôle (md5, sha1, peu importe) de ces fichiers avant l'archivage; cependant, ne pas lire chaque fichier deux fois (une fois pour la somme de contrôle, deux fois pour le tarage) est plus ou moins une nécessité pour atteindre des performances d'archivage très élevées (LTO-4 veut 120 Mo / s soutenus et la fenêtre de sauvegarde est limitée).
J'aurais donc besoin d'un moyen de lire un fichier, d'alimenter un outil de somme de contrôle d'un côté et de construire un tar sur bande de l'autre côté, quelque chose le long:
tar cf - files | tee tarfile.tar | md5sum -
Sauf que je ne veux pas la somme de contrôle de l'archive entière (cet exemple de code shell fait exactement cela), mais une somme de contrôle pour chaque fichier individuel dans l'archive.
J'ai étudié les options GNU tar, Pax, Star. J'ai regardé la source d' Archive :: Tar . Je ne vois aucun moyen évident d'y parvenir. Il semble que je devrai construire quelque chose à la main en C ou similaire pour obtenir ce dont j'ai besoin. Perl / Python / etc ne le réduira tout simplement pas en termes de performances, et les différents programmes tar manquent "l'architecture de plug-in" nécessaire. Quelqu'un connaît-il une solution à ce problème avant de commencer le barattage de code?
7z
vous pouvez choisir le hachage et l' imprimer d'une manière sha1sum
et sha256sum
peut comprendre: 7zip.bugaco.com/7zip/7zip_15_09/MANUAL/cmdline/commands/... (et sami-lehtinen.net/blog/... ) Essayez-le: 7z h -scrcsha256 mydir/* | sed --regexp-extended 's, +[0-9]+ +, ,g' > mydir.sha256sum ; sha256sum -c mydir.sha256sum
(testé avec p7zip version 15.09 bêta)
tar
si vous décidez de l'écrire;)