拡張せずにtarとgzipの効率を評価する方法は?

拡張せずにtarとgzipの効率を評価する方法は?

ずっと前、私は私たちのウェブサイトのバックアップスクリプトを書いて、それ以来それを更新しました。しかし、時には問題が発生し、いくつかの古いバックアップが破損しています。

以前は、zipinfo自動化されたスクリプトでこのユーティリティを使用して以前のバックアップが破損していることを確認し、バックアップを再試行しましたが、まだいくつかのバックアップが残っているzip間(少なくとも)2つの問題がありました。

まず、zip基本的な制限があるため、tarより大きなバックアップを使用します。

第二に、zipメタデータはあまりキャプチャしないため、tar特定の種類のアイテムに優先されます。

gzipまた、代わりにピボットを行い、zip圧縮も行いましたtars

今、私はバックアップ容量が膨大で、何を削除し、何を保存する必要があるのか​​悩んでいます。破損したファイルを保存する必要はありません。だから私はさまざまなバックアップディレクトリ(オンサイトやオフサイトなど)をマージするスクリプトを書いています。場合によっては、あるコピーは破損していますが、別のコピーは大丈夫であるため、各ファイルを検証する必要性を強く感じます。

gzipバージョンが見つかりzipinfoましたが見つかりません。私はそのような言葉を聞いたことがありませんが、tar単に無知かもしれません!

私はディスク容量の拡張に頼りたくありません!

答え1

についてgzip

(これはgztgzおよびtzファイルに適用されます。)

zipinfoに基づいていることに注目して、より徹底的に調査したunzip結果gzip、直接的な同等の組み合わせはありませんが、次のzipinfo -tような組み合わせがあることがわかりましたgunzip

# gunzip -t -v [file-specification(s)]
[file-specification]: OK

しかし、目的の出力がstderr代わりに送信されることに注意してくださいstdout。また、出力コロンと「OK」の間にタブがあるので、それに応じてスクリプトを調整してください。

についてtar

上記の説明で指摘したように、tarは私たちが望む検査機能を持っていませんが、tar -t「何もないよりも良い」ソリューションのための合理的な開始であることも発見しました。

出力が非出力gunzipから出ていることを確認する場合と同様に、両方の出力ストリームは特定のサブターゲットに応じて役に立ちます。stderrstdout

厳密に言えば、Fedora 38の現在のtarバージョンは次の問題を提起します。

これはtarアーカイブのようには見えません。

...アーカイブが無効な場合。つまり、tarに認識できるファイルがないからといって必ずしも有効ではないという意味ではなく、最初に正しくビルドされていない可能性があります。したがって、一部の人はこれを無効なアーカイブラと思うかもしれません! YMMV。

関連情報