logrotateしているログファイル名に日付を付与する。

さくらのVPS契約してみたら設定されていた、なんていう恥ずかしい理由で知りました。

普通のlogrotateの設定だと、ローテートしているログファイルはmessages.1みたいな感じで一体いつ出たログなのか、よくわかりません。
最近のlogrotateにはdateextというオプションがあるようで、これを設定することでローテートしたログファイルに日付を付けられるようです。
こんな感じ。

 # see "man logrotate" for details
 # rotate log files weekly
 weekly
 
 # keep 4 weeks worth of backlogs
 rotate 4
 
 # create new (empty) log files after rotating old ones
 create
 
 # use date as a suffix of the rotated file
 dateext
 
 # uncomment this if you want your log files compressed
 #compress
 
 # RPM packages drop log rotation information into this directory
 include /etc/logrotate.d
 
 # no packages own wtmp and btmp -- we'll rotate them here
 /var/log/wtmp {
     monthly
     create 0664 root utmp
         minsize 1M
     rotate 1
 }
 
 /var/log/btmp {
     missingok
     monthly
     create 0600 root utmp
     rotate 1
 }
# system-specific logs may be also be configured here.

こんな感じでローテートされます。

 [root@localhost log]# ls -ltr messages*
 -rw------- 1 root root 1588 Apr 29 03:17 messages-20120429
 -rw------- 1 root root  517 May  6 04:29 messages-20120506
 -rw------- 1 root root  448 May 13 04:00 messages-20120513
 -rw------- 1 root root  448 May 20 04:50 messages-20120520
 -rw------- 1 root root  219 May 20 04:50 messages