例えば、メールログを日付が変わる0:00のタイミングでローテートし、日付をつけて保存したい場合などはないでしょうか?自分の場合、そんな時は以下のようにしています。
1.OS標準のログローテートからはずす
メールログの場合は、/etc/logrotate.d/syslogを修正する
→/var/log/maillogの記述を削除する
(修正前)
/var/log/messages /var/log/maillog /var/log/secure /var/log/spooler /var/log/boot.log /var/log/cron {
(修正後)
/var/log/messages /var/log/secure /var/log/spooler /var/log/boot.log /var/log/cron {
2.ログをローテートさせるスクリプトを作成する
例)maillog-rotate.sh (コテコテですが)
<ここから>------------------------------------------------------------------
#!/bin/bash
PID=`cat /var/run/rsyslogd.pid`
SRCDIR=/var/log
DSTDIR=/var/log/postfix
YESTERDAY=`env TZ=JST+15 date +%Y%m%d`
# PRE ROTATE
#
if [ -r ${SRCDIR}/maillog ]; then
cp -p ${SRCDIR}/maillog ${SRCDIR}/maillog.1
cp /dev/null ${SRCDIR}/maillog
fi
kill -HUP ${PID} #RECONFIG SYSLOG PROCCESS
# POST ROTATE
#
mv ${SRCDIR}/maillog.1 ${DSTDIR}/maillog-${YESTERDAY}
find /var/log/postfix -type f ! -name "*.gz" -and -mtime +7 -exec gzip {} \;
exit 0
<ここまで>------------------------------------------------------------------
3.cronを設定する
0 0 * * * /usr/local/sbin/maillog-rotate.sh
以上を設定すると、こんな感じにログが保存されるようになります。
-rw-r----- 1 root logadmin 8342 Jul 24 23:55 maillog-20120724.gz
-rw-r----- 1 root logadmin 9636 Jul 25 23:59 maillog-20120725.gz
-rw-r----- 1 root logadmin 8049 Jul 26 23:59 maillog-20120726.gz
-rw-r----- 1 root logadmin 8204 Jul 27 23:58 maillog-20120727.gz
-rw-r----- 1 root logadmin 50061 Jul 28 23:54 maillog-20120728
-rw-r----- 1 root logadmin 52978 Jul 29 23:52 maillog-20120729
-rw-r----- 1 root logadmin 105343 Jul 30 23:55 maillog-20120730
-rw-r----- 1 root logadmin 51856 Jul 31 23:52 maillog-20120731
-rw-r----- 1 root logadmin 67329 Aug 1 23:56 maillog-20120801
-rw-r----- 1 root logadmin 73968 Aug 2 23:58 maillog-20120802
-rw-r----- 1 root logadmin 53923 Aug 3 23:53 maillog-20120803
-rw-r----- 1 root logadmin 33898 Aug 4 23:56 maillog-20120804
/usr/sbin/logrotate /etc/logrotate_maillog.conf な感じのを cron に登録しても幸せになれそうな気がしました。dateext もつけたりして。
返信削除コメントありがとうございます!
削除このねたは、sysklogdを使っていた時代に良く使っていたものですが、今現在だったらrsyslogを使って日付をつけたりローテーションさせたりした方がコテコテなスクリプトを書くより幸せになれる気がしますw