CentOS7で、 anacron をはじめとした cron のメール通知を全て抑止し、内容をsyslogに出力するようにする

CentOS7で、あまりにも anacron に書いたスクリプト ( /etc/cron.weekly/ 以下のスクリプトとか) の出力がローカルのメールにたまっていた。普段はローカルのメールなんか読まないので、さすがに対応した。

特定ユーザだけとか、anacronだけというわけではなくて、そもそもsendmailがまともに外にメールを出せるようになっていないので、いちいちcrontabでMAILTO変数を設定しなおすことはせず、システム全体で抑止することにした。

man crond を読んで、crondの起動時オプションを変更する方針にした。

この起動時オプションは、(CentOS7の場合は、) crondのユニットファイル ( /lib/systemd/system/crond.service ) を読むと、 /etc/sysconfig/crond になっているようなので、このファイルを開いて、 CRONDARGS 変数に書く。 (crondのユニットファイルで、実行時にCRONDARGS変数を引いてコマンドを叩いていることがわかる。)

/etc/sysconfig/crond の中身はこれ。

# Settings for the CRON daemon.
# CRONDARGS= : any extra command-line startup arguments for crond
CRONDARGS="-s -m off"

man crond によると、 -s は syslog に cron の出力を送るもので、 -m は、sendmailの代わりに使うメール配送コマンドを指定でき、 “off” にすることでメールが送信されなくなる。はず。

一応、これでしばらく様子見にする。


様子を見た結果、いまいち効いていなかった。
とりあえず、しょうがないので、crontabとかでMAILTOを書かないといけないようだ。

コメントを残す