スクリプトでエラーが発生したときにエラーログを含む電子メールを送信するようにcronをどのように取得しますか?

スクリプトでエラーが発生したときにエラーログを含む電子メールを送信するようにcronをどのように取得しますか?

SQLデータベースでエラーを確認し、エラーをログファイルに記録するスクリプトを実行するcronジョブがあります。ログファイルは、スクリプトを実行するコマンドに提供されます。スクリプトでエラーが検出された場合にのみ電子メールを受信したい場合は、電子メールにログを含めたいと思います。スクリプトでエラーが見つからない場合は、電子メールを受信したくありません。明らかに、スクリプトはエラーが見つからなかったときにログに記録します(私はこれを書いていません)。

    20 6-10 * * 1-5 ~/job_failure_test.sh -o ~/job_fail.log 2>&1 /dev/null | mail -s "Errors" [email protected] < ~/job_fail.log

これまで、この行はログにエラーが記録されたときに私に電子メールを送信しますが、更新されたログは送信しません。最後に実行されたクローンジョブのログを私に送信します。

ベストアンサー1

ただ変えてください(A管路)から||または)(スクリプトが終了コードを正しく使用していると仮定)エラーが発生した場合にのみ出力するようにスクリプトを変更する方が良いですが:

[email protected]
[email protected]
20 6-10 * * 1-5 ~/job_failure_test.sh

醜い方法;

20 6-10 * * 1-5 ~/job_failure_test.sh > ~/job_fail.log 2>&1 || mail -s "Errors" [email protected] < ~/job_fail.log

おすすめ記事