periodic
(8)の通知先をカスタマイズ▼FreeBSDでは
インストール直後から periodic
という
定期ログ収集スクリプトがデフォルトで走っていて、
毎日1回、root
宛に報告が来ます。
か、メールサーバ(MTA)を止めていたりするとmailqに溜まって困ったりします。
$Id: periodic.html,v 1.2 2006/07/06 07:08:39 kabe Exp $
periodic
を完全に止めたいperiodic
自体は /etc/crontab から起動されているので、
# Perform daily/weekly/monthly maintenance. 1 3 * * * root periodic daily 15 4 * * 6 root periodic weekly 30 5 1 * * root periodic monthlyこれらの行をコメントアウトすれば止まります。
素のインストール直後は periodic
を止めても
そんなに困らないとは思いますが、
パッケージをインストールしていたりすると不具合が出ることもあるので、
スクリプトが集められている
/etc/periodic/daily/ の下を確認してからにしましょう。
periodic
の出力をファイルに落とすメールサーバ(sendmailとかpostfix)を動かさない機械では
periodic
の出力が
メールキュー(/var/spool/clientmqueueなど) に溜まる一方なので、
とりあえずファイルに落とすようにすべきです。
/etc/periodic.conf というファイルを作成し、以下を書き加えれば メールではなくファイルに落ちるようになります。
# /etc/periodic.conf (cf. periodic(8)) # Things to override from /etc/defaults/periodic.conf daily_output="/var/log/daily.log" # user or /file weekly_output="/var/log/weekly.log" monthly_output="/var/log/monthly.log"
daily.log, weekly.log, monthly.log のログ回転については 最初から /etc/newsyslog.conf(5) に書かれているので、 /etc/periodic.conf 以外の調整は不要です。
/etc/periodic.conf で設定できる値のデフォルト値は /etc/defaults/periodic.conf に書かれているので、 ここを参考にしてカスタマイズしてみましょう。
periodic
の出力をメールとファイルの両方 に落とす外部にperiodic
出力を転送しつつ、保険のため
/var/log/daily.log も残しておきたい、とか。
periodic.conf(5) に daily_output="root,/var/log/maillog" とか書いても ダメです。ので、
メールのaliasesを使ってファイルに落とします。
daily_out
という
aliasを作成します。daily_out: root, /var/log/daily.log
daily_out
宛メールにします。daily_output="daily_out"
# chown mailnull:wheel /var/log/daily.log # chmod 640 /var/log/daily.logaliasesからファイルに書く場合、MTA (sendmailやpostfix)は
実ユーザではないので、権限の少ないユーザでファイルを書きにいくため。MTAによってデフォルトが違うので注意。
mailnull
(O RunAsUser=mailnull)
mail
nobody
(default_privs = nobody)
実際に誰になるかは設定ファイルに明示されていなかったりで 意外に分からないので、いったんaliasesにdaily_out: /tmp/daily.logと書いてテストメールを投げて、誰のものになるか調べる、のが最も簡単です。
#/var/log/daily.log 640 7 * @T00 JN ## nobody should be writeable to deliver mail to file /var/log/daily.log nobody:wheel 660 7 * @T00 JN
ログをmailnull君の所有にしたくない、という場合は、 一旦普通のユーザ (operator君とか) 宛に daily_output を設定してから、 ~/.forwardで
\root, /var/log/dailyなどとします。依然、chown operator /var/log/daily は必要です。
メールサーバ (配送MTA) の設定によっては、配送時に ロックファイルを作ろうとしてエラーを出す場合があります。
/var/log/maillog: Jun 30 04:02:02 myhost postfix/local[32254]: warning: unable to create lock file /var/log/daily.log.lock: Permission denied
外から見えるメールサーバだと daily_out@ホスト 宛に spamとか来る可能性もあるので、alias名は少しひねったもののほうが 良いでしょう。 万全を期すなら access(5) や smtpd_recipient_restrictions で 固めてください。