2013年4月28日日曜日

cronでエラー時にメールを送信するサンプル

1. 標準出力とエラー出力の両方をログに記録しつつ、エラー出力がある場合はその内容をメールする場合
MAILTO=foo@example.com
* * * * * (php test.php 1>>test.log) 2>&1 | tee -a error.log

teeで -a オプションを付けてerror.logに追記するようにしている。
test.logとerror.logは同じファイルでもOK。

エラー出力もログに残したいけど、何らかのエラーが出た時にメールさせたい場合に使う。



2. コマンドの戻り値が0でない場合のみ、ログの最後の方をメールする場合
MAILTO=foo@example.com
* * * * * php test.php 1>>test.log 2>>error.log || tail error.log
test.logとerror.logが同じでよいなら、2>&1にすればよい。
メールに出力するのはtailじゃなくてもよい。
異常じゃなくてもエラー出力を出すような処理の場合はこちらで。

0 件のコメント:

ブログ アーカイブ

tags