logrotate の変更点
ログファイルを定期的にローテートするツール。
*一世代だけローテートし、それ以前は日付を付加してbzip2圧縮 [#oneweekrotation_bzip2]
前の週のログを見ることはよくあるが、それ以前を見ることは稀。~
しかし、ログは全て残しておきたい。~
compressとolddirではイマイチな人向け。
**こんな感じになる
#code(nonumber,nooutline){{
$ ls -RF /var/log/apache2
/var/log/apache2:
access.log
access.log.1
old/
/var/log/apache2/old:
access.log.20060903.bz2
access.log.20060910.bz2
access.log.20060917.bz2
}}
**設定
vi /etc/logrotate.d/apache2
>
#code(nonumber,nooutline){{
/var/log/apache2/*.log {
weekly
missingok
rotate 2
notifempty
create 640 root adm
sharedscripts
postrotate
if [ -f /var/run/apache2.pid ]; then
/etc/init.d/apache2 restart > /dev/null
fi
DATE=`date -d '2 weeks ago' +%Y%m%d`
DIR=`echo ${1%/*}`/old
if [ ! -d ${DIR} ]; then
mkdir ${DIR}
fi
for f in ${1}; do
if [ -f ${f}.2 ]; then
NAME=${DIR}/${f##*/}.${DATE}
mv ${f}.2 ${NAME}
bzip2 ${NAME}
fi
done
endscript
}
}}
<
*備考
ログローテートの前回実行日
cat /var/lib/logrotate/status
*参考
-[[仕事と家事の狭間に:Apacheのアクセスログ管理>http://www.toshikazu.org/archives/000087.html]]