$ yum install logrotate
logrotateはデーモンではないのでcrondによって実行される。
/etc/cron.daily/logrotateにより
メイン設定ファイルの/etc/logrotate.confが読み込まれる。
メイン設定ファイル内のincludeにより
個別設定ファイルの/etc/logrotate.d/以下が読み込まれる。
ローテーション確認
$ logrotate -d /etc/logrotate.d/httpd
強制実行
$ logrotate -f /etc/logrotate.d/httpd
実行履歴確認
$ cat /var/lib/logrotate.status
やりたかったこと
httpdのローテーション設定を変更したかった。
/var/log/httpd/*log {
	missingok
	notifempty
	sharedscripts
	delaycompress
	postrotate
		/sbin/service httpd reload > /dev/null 2>/dev/null || true
	endscript
}
週ごとのローテーション設定と、世代保存53週(1年)を追加
/var/log/httpd/*log {
	weekly
	rotate 53
	missingok
	notifempty
	sharedscripts
	delaycompress
	postrotate
		/sbin/service httpd reload > /dev/null 2>/dev/null || true
	endscript
}
動作確認
$ logrotate -dv /etc/logrotate.d/httpd
- vオプションで詳細を表示、個別設定ファイルの場合はメイン設定は使用されない
 
エラーが出ていた。remove対象のファイルがnot found。ふぁ???
vオプションで詳細をよく確認すると、ファイル名処理を日付ではなく連番のextentionで処理しているっぽい?
現状は/var/log/httpd内には日付ファイル名が存在。
メイン設定ファイル内にdateextという項目を発見。個別設定の方に追加。
/var/log/httpd/*log {
	weekly
	rotate 53
	dateext
	missingok
	notifempty
	sharedscripts
	delaycompress
	postrotate
		/sbin/service httpd reload > /dev/null 2>/dev/null || true
	endscript
}
再確認
$ logrotate -dv /etc/logrotate.d/httpd
いけてるっぽいので実行
$ logrotate -fv /etc/logrotate.d/httpd
ログフォルダ確認
$ ls /var/log/httpd
ちゃんと消えてた。