cronからメール抑制設定覚え書き

何気なく普段使っている自宅サーバにBeckyでアクセスしてメールを落としておこう*1と思ったら、サーバ上に2万通ものメールが。知らないうちにメール攻撃でも食らったかと思ってたら原因はcronの送るログメールでこれがものによってはかなり大きな容量*2になっていてBeckyがフリーズ、挙げ句の果てには鯖の挙動までおかしくなる始末。
仕方なくコンソールから鯖上のメールを消したんですが、こんなことにならないようにcrontabの設定をメールしない設定に変更しました。

$ crontab -e から編集画面に入って、

MAILTO=""
0 * * * * plagger -c /path/to/hateb_chtml.yaml
30 * * * * plagger -c /path/to/svn/plagger/feature-server/root/config.yaml

という風に最初の行に「MAILTO=""」を加えるだけ。
本来は指定したアドレスにログメールを送るオプションみたいですが、何も指定しないことでどこにも送らなくなるそうです。この設定だと全部送らなくなってしまうので送って欲しいものがあるときには、送らないで欲しいコマンドのあとに

0 * * * * plagger -c /path/to/hateb_chtml.yaml >/dev/null 2>&1

と書き込んでおけばそのコマンドについてのメールは無くなります。

とりあえずこれでサーバが突然パンクなってことはないかな。
その前に毎日バックアップして消すようにすることの方が大切ですが。

参考:http://www.linux.or.jp/JM/html/cron/man5/crontab.5.html

*1:普段はGmailからバックアップを取るようにしてる

*2:特にchtmlに変換しようとしたときに文字コード変換で文字がないよってエラーを吐くと容量が大きくなるみたい。