2月 102010
nginxでapacheで日付風のログを出力する方法がないかなぁと考えてたのでメモ程度に
logrotateを使うしかないのですが dateextオプションをつけるとlogrotateが走った日時の日付になります
結構強引ですがこうすればいけます
logrotate用の設定ファイル
/var/log/nginx/access_log {
dateext
rotate 365
missingok
postrotate
/bin/kill -USR1 `/bin/cat /var/run/nginx.pid 2>/dev/null` 2>/dev/null || true
/bin/mv /var/log/nginx/access_log-`date '+%Y%m%d'` /var/log/nginx/access_log.`date '+%Y%m%d' -d '1days ago'`
endscript
}
postrotateのところでmvしてるだけですが意外と思いつかなかったのでメモ
あとnginxでrotateするときはHUPではなくてUSR1なので注意が必要です
rotateの時間は00:00ぴったりがおすすめです
参考
Gmane — Mail To News And Back Again