tar.gzファイルの整合性を確認するには?

tar.gzファイルの整合性を確認するには?

ディレクトリのtar.gzバージョンである17GBのtar.gzファイルがあります。 tar操作後、次のメッセージが表示されます。

tar: Error exit delayed from previous errors

今はダウンロードに時間がかかるので、ダウンロードする前にファイルが健康であることを確認したいと思います。時間をかけずにファイルの整合性を確保する方法はありますか?

これまでに見つかったすべての検証ソリューションは、完了するのに長い時間がかかります。

答え1

ファイルが正常であると仮定することはできませんが、tar.gzIMHOは非常に良い可能性です。

非常に一般的な根本的な原因は、"Error exit delayed from previous errors"ファイルサイズが変更または処理される前に消えることです。アーカイブに含まれるファイルの種類によっては、これは問題にならない可能性があります。それにもかかわらず、これらのイベントが正しく処理される限り、生成されたtarアーカイブを使用できます。

次回のアーカイブを作成するときは、v(verbose)オプションを忘れたり、ファイルにstdoutリダイレクトすることをお勧めします。 12個のファイルを含む小さなアーカイブに便利ですが、tar出力に不要なノイズが追加され、画面にエラーメッセージが表示され(存在する場合)、ターミナルエミュレータで再スクロールされません。

tar czvf large.tar.gz someDirectory >/tmp/large.tar.list

もちろん、tar.gzファイルが健康であることを100%保証することはできません。これを知る唯一の方法は、どこかに抽出してエラーが発生しないことを確認することです。このような場合でも、アクセス権の問題、ファイル名/パス名が長すぎる、または無効である、ファイルシステムの破損、転送の破損など、より奇妙な問題が原因で一部のファイルが保存されていない可能性があります。

答え2

私の経験tar: Error exit delayed from previous errorsでは、これは通常taringプロセス中に生成されたgzipに問題があることを意味します(通常はtarに入れると追加されたファイルの内容が変更されます)、上記のエラーが発生します。

これは「失敗したアーカイブ」を構成することができます(ファイルがtarで異なる、欠落している、または破損する可能性があります)。 (変更する)コンテンツの量が多い場合は、rsyncコピーファイルを代わりに使用することをお勧めします。

関連情報