Bashでtarファイルの整合性をテストする

Bashでtarファイルの整合性をテストする

".tar"ファイルを生成するbashスクリプトがあります。ファイルが生成された後に整合性をテストし、整合性が悪い場合は、rootユーザーに電子メールを送信したいと思います。

tar -tf /root/archive.tarファイルの整合性を確認するにはこのコマンドを使用する必要がありますが、bash ifステートメントでそれを実装してエラーを確認するにはどうすればよいですか?

ベストアンサー1

tar入力でエラーが検出されると、ゼロ以外の終了exit(3)値があります。ほとんどのtar実装では、これは.listを使用してアーカイブコンテンツを一覧表示するときにも行われますt。したがって、終了値を調べてtar問題が発生したかどうかを確認できます。

if ! tar tf /root/archive.tar &> /dev/null; then
    write_an_email_to_root
fi

tarすべてのエラーが見つからない場合tでも、アーカイブを抽出してstdoutリダイレクトできます。この方法は遅いですが、より安定した方法です。stdout/dev/null

if ! tar xOf /root/archive.tar &> /dev/null; then
    write_an_email_to_root
fi

1この記号は、実際の呼び出しではなくマンページを表します。バラよりman 3 exit

おすすめ記事