ここに私の問題があります:大きなファイル(通常はそれぞれ30〜40 GB)を大量(最大60 TB)のtarファイルにアーカイブする必要があります。アーカイブする前にこれらのファイルのチェックサム(md5、sha1、何でも)を作成したいと思います。ただし、すべてのファイルを2回(チェックサムで1回、tarで2回)読み取らないことは、非常に高いアーカイブパフォーマンスを実現するために多少なりとも必要です(LTO-4は120 MB / sを維持し、バックアップウィンドウは制限されます)。
そのため、ファイルを読み取り、一方の側にチェックサムツールを供給し、もう一方の側にテープにtarを作成する何らかの方法が必要になります。
tar cf - files | tee tarfile.tar | md5sum -
アーカイブ全体のチェックサム(このサンプルシェルコードはこれを行うだけでなく)ではなく、アーカイブ内の個々のファイルのチェックサムが必要な場合を除きます。
GNU tar、Pax、Starオプションを研究しました。Archive :: Tarのソースを見てきました。これを達成する明白な方法はありません。必要なものを実現するために、Cなどで手動でビルドする必要があるようです。Perl / Python /などは単にパフォーマンス面でそれをカットしません、そして、様々なtarプログラムは必要な「プラグインアーキテクチャ」を見逃します。コードチャーニングを開始する前に、これに対する既存のソリューションを知っている人はいますか?
7z
あなたはハッシュを選択していること方法でそれを印刷することができますsha1sum
し、sha256sum
理解することができます:7zip.bugaco.com/7zip/7zip_15_09/MANUAL/cmdline/commands/...(とsami-lehtinen.net/blog/...)それを試してみてください7z h -scrcsha256 mydir/* | sed --regexp-extended 's, +[0-9]+ +, ,g' > mydir.sha256sum ; sha256sum -c mydir.sha256sum
(p7zipのバージョン15.09ベータ版でテスト)
tar
あなたがそれを書くことに決めた場合、確かに便利な追加のように聞こえます;)