".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
。