Top/Linux/logrotate

logrotate の変更点はてなブックマーク

  • 追加された行はこの色です。
  • 削除された行はこの色です。
  • Linux/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]]
差分 一覧