logrotate による access_log の分割

背景: access_log が肥大化していた.
目的: access_log の分割
方法: logrotate を利用

$ vi /etc/logrotate.d/httpd

/usr/local/apache2/logs/access_log /usr/local/apache2/logs/error_log {
  daily
  rotate 90
  missingok
  sharedscripts
  postrotate</span>
    /bin/kill -HUP `cat /usr/local/apache2/logs/httpd.pid 2>/dev/null` 2> /dev/null || true
  endscript
}

結果:

  • 日毎(daily)にlogファイルを作成.
  • 90日分(rotate 90)保存.
  • postrotate 〜 true によってapache2再起動.

考察:

  • /etc/logrotate.d/にファイルを追加するだけで自動的にrotationされるようになる.
  • 分割するタイミングは,[daily, weekly, month]から選ぶことができる.
  • 保存するファイル数は[rotate]によって指定可能.
  • ただし,apache2の再起動が必要.[[]]