cronのログをauth.logやsyslogに出したくない

Debuan系のLinuxではログがrsyslogで管理されていて、cronのログが/var/log/syslogや/var/log/auth.logに出力される。これが正直凄い邪魔。cronで何か実行される度にログが出力されるので大量に溜まる。大容量ストレージがあるシステムでもこんなのが溜まるのはイヤだけどシングルボードコンピュータだともっとイヤ。

/var/log/syslog (該当ログの例)
Jan 15 10:06:01 localhost CRON[5066]: (root) CMD (実行コマンド)
/var/log/auth.log (該当ログの例)
Jan 15 10:06:01 localhost CRON[5065]: pam_unix(cron:session): session opened for user root by (uid=0)
Jan 15 10:06:01 localhost CRON[5065]: pam_unix(cron:session): session closed for user root

こんなの。

/etc/rsyslog.conf (変更)
1
2
3
4
5
6
#
# First some standard log files.  Log by facility.
#
:programname, isequal, "CRON" stop
auth,authpriv.*                 /var/log/auth.log
*.*;auth,authpriv,cron.none             -/var/log/syslog

syslog側だけの出力の抑制は簡単だけどauth.logへの出力の抑制が意外と手こずる。
4行目が元々は存在しない筈で、プロパティ型のフィルタでプロセス名CRONのログを抑制。多くのプロセス名は小文字だが、cronは何故か大文字のCRONなので注意。(syslogやauth.logでもプロセス名はCRONで出力されている)
行末部分、古くはstopではなく~と書かれてたみたい。
これをauth,authpriv.*の行(5行目)より前に追加。これを書いたら6行目の変更は不要。
6行目はauth.logにcronのログが出なくてsyslogだけにcronのログを出力させない場合。*.*;auth,authprivの直後に,cron.noneを追加。4行目を書いていたら要らない筈。

/etc/rsyslog.confを書き換えたらサービスを再起動。

$ sudo service rsyslog restart

こんだけ。
rsyslogは設定次第でいろい出来て凄いんだろうけど書き方のクセがすごくて解りにくいのよね。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です