ずっと前、私は私たちのウェブサイトのバックアップスクリプトを書いて、それ以来それを更新しました。しかし、時には問題が発生し、いくつかの古いバックアップが破損しています。
以前は、zipinfo
自動化されたスクリプトでこのユーティリティを使用して以前のバックアップが破損していることを確認し、バックアップを再試行しましたが、まだいくつかのバックアップが残っているzip
間(少なくとも)2つの問題がありました。
まず、zip
基本的な制限があるため、tar
より大きなバックアップを使用します。
第二に、zip
メタデータはあまりキャプチャしないため、tar
特定の種類のアイテムに優先されます。
gzip
また、代わりにピボットを行い、zip
圧縮も行いましたtars
。
今、私はバックアップ容量が膨大で、何を削除し、何を保存する必要があるのか悩んでいます。破損したファイルを保存する必要はありません。だから私はさまざまなバックアップディレクトリ(オンサイトやオフサイトなど)をマージするスクリプトを書いています。場合によっては、あるコピーは破損していますが、別のコピーは大丈夫であるため、各ファイルを検証する必要性を強く感じます。
gzip
バージョンが見つかりzipinfo
ましたが見つかりません。私はそのような言葉を聞いたことがありませんが、tar
単に無知かもしれません!
私はディスク容量の拡張に頼りたくありません!
答え1
についてgzip
:
(これはgz
、tgz
およびtz
ファイルに適用されます。)
zipinfo
に基づいていることに注目して、より徹底的に調査したunzip
結果gzip
、直接的な同等の組み合わせはありませんが、次のzipinfo -t
ような組み合わせがあることがわかりましたgunzip
。
# gunzip -t -v [file-specification(s)]
[file-specification]: OK
しかし、目的の出力がstderr
代わりに送信されることに注意してくださいstdout
。また、出力コロンと「OK」の間にタブがあるので、それに応じてスクリプトを調整してください。
についてtar
:
上記の説明で指摘したように、tarは私たちが望む検査機能を持っていませんが、tar -t
「何もないよりも良い」ソリューションのための合理的な開始であることも発見しました。
出力が非出力gunzip
から出ていることを確認する場合と同様に、両方の出力ストリームは特定のサブターゲットに応じて役に立ちます。stderr
stdout
厳密に言えば、Fedora 38の現在のtarバージョンは次の問題を提起します。
これはtarアーカイブのようには見えません。
...アーカイブが無効な場合。つまり、tarに認識できるファイルがないからといって必ずしも有効ではないという意味ではなく、最初に正しくビルドされていない可能性があります。したがって、一部の人はこれを無効なアーカイブラと思うかもしれません! YMMV。