50307


ec2 の amazon linux に対して、 cron でバッチを実行しました。 `/var/log/cron`
を見てみた結果、時折、このバッチは失敗している様子です。

[code]

    Nov 13 16:35:01 ip-172-31-29-31 CROND[20056]: (ec2-user) CMD (/path/to/my/program)
    Nov 13 16:35:10 ip-172-31-29-31 CROND[20222]: (CRON) EXEC FAILED (/usr/sbin/sendmail): No such file or directory
    Nov 13 16:35:10 ip-172-31-29-31 CROND[20055]: (ec2-user) MAIL (mailed 75823 bytes of output but got status 0x0001#012)
    
[/code]

さらにわかることは、バッチが異常終了した際に、 cron はメールでもってそれを通知しようとしているが、 `sendmail`
プログラムがないために、その処理は失敗している模様です。

### 質問

  * amazon linux での cron バッチ処理が失敗した場合に、それを知りたいと思いました。これは、どうやったら実現できますでしょうか？
  * またさらに、失敗した場合には、例えばその標準エラーをどこかに出力しておきたいな、と考えています。このようなことは可能でしょうか？


CC BY-SA 4.0
2018-11-14T02:51:58.317
50306
2018-11-14T03:25:10.590
2018-11-14T02:59:33.993
754
754
question
aws unix amazon-ec2 cron amazon-linux
amazon linux で cron が失敗したときに、それを知れるようにしたい。

  * cronジョブの登録時に、実行するコマンド出力を適当なファイルにリダイレクトする。
[code]     # 標準出力とエラー出力の両方をログファイルにリダイレクト

    /path/to/cronjob.sh > /path/to/cronjob.log 2>&1
    
[/code]

  * cronジョブの登録時に`MAILTO`でメールアドレスを指定しておく。指定がなければcronを実行したユーザのローカルメールボックスに保存される(`mail`コマンドで確認)。  
(※成功時も含めて実行結果がメールで送信される)

[code]     MAILTO=hoge@example.com

    0 1 * * 1-5 /path/to/cronjob.sh
    
[/code]

  * エラー時のみメール通知する[cronlog](https://github.com/kazuho/kaztools/blob/master/cronlog)というツールもあるようです。


CC BY-SA 4.0
2018-11-14T03:25:10.590
50307
2018-11-14T03:25:10.590
3060
50306
answer