Logwatch の通知を weekly にする

何台もサーバがあると毎日のlogwatchで大量にメールが来てしまうので、週一だけ通知されるように変更してみました。

「logwatch --range help」を見た感じ、「Date::Manip」があれば range で色々指定出来るらしいので・・・

# cpan -i 'Date::Manip'
# perl -MDate::Manip -e 'print ParseDate("-7 days"),"\n";'
2011112300:00:48

実際にコマンドラインで期間を指定して実行してみる。

# logwatch --print --range "between -7 days and -1 days"
 ################### Logwatch 7.3 (03/24/06) #################### 
        Processing Initiated: Wed Nov 30 00:01:02 2011
        Date Range Processed: between -7 days and -1 days
                              ( 2011-Nov-23 / 2011-Nov-29 )
                              Period is day.
                              :

見た感じ上手く行っているように見えるので、設定ファイルの方も変更する。

/etc/logwatch/conf/logwatch.conf
Range = "between -7 days and -1 days"

動作確認します・・・コマンドラインで実行したときと同じような表示になっていればOK

# logwatch --print
 ################### Logwatch 7.3 (03/24/06) #################### 
        Processing Initiated: Wed Nov 30 00:01:24 2011
        Date Range Processed: between -7 days and -1 days
                              ( 2011-Nov-23 / 2011-Nov-29 )
                              Period is day.
                              :

cron.daily の 0logwatch を weekly に 移動する。

# mv /etc/cron.daily/0logwatch /etc/cron.weekly/0logwatch

※yum update で logwatch が更新されると cron.daily に設定が復活してしまいます(多分)。
※logrotate で7日間ログが保存されるように設定しておく必要があります。

???

なぜか yum の logwatch がおかしなことになった・・・
どうも「/usr/share/logwatch/scripts/logfiles/yum/applydate」でログファイルの日付を '%b %d %H:%M:%S' の形式から '%m/%d/%y %H:%M:%S' の形式に変換しようとしていてそれが上手くいっていないっぽい?