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