2007-06-18

cronからのメールが大量に。。。

恥を承知のエントリー。

久しぶりに自宅サーバにログインしたら4000件くらいメールが届いていた。確認してみると全部cronからのメール。 crontabに登録しているプログラムの実行結果がメールでどっさり。内容を見ても問題なさそうで訳わからんので、[ man 5 crontab ] で確認してみたら、こんな記述を発見。

# mail any output to `paul', no matter whose crontab this is MAILTO=paul
さらに、
Command output is mailed to the crontab owner (BSD can't do this), can be mailed to a person other than the crontab owner (SysV can't do this), or the feature can be turned off and no mail will be sent at all (SysV can't do this either).

出力があればメールされるのか。。。リターンステータスが0以外の場合だけメールが届くようには出来んもんかと思ってたけど、出力があれば報告の必要があるって考え方か。これも基本ダンマリのUNIXの思想ですかね。

自分で管理してなきゃこういうことを体験することも無かったので、自宅サーバの恩恵だなあ。 さっそく、エラー時にしかメッセージを出さないように修正しよっと。

追記
標準出力にメッセージを出したとしても、そもそもメールが送られるようにしたくない場合は、環境変数MAILTOを空にしておけばOK。なので、

MAILTO="someone@somewhere"
* * * * * /home/someone/foo.sh
MAILTO=""
* * * * * /home/someone/bar.sh
とでもしておけば、bar.shで出力があってもメールを出さないようになりました。

Posted at 03:51 in | WriteBacks (0) | Edit