facebook twitter hatena line google mixi email

Linux/定期ログ圧縮

提供: 初心者エンジニアの簡易メモ
移動: 案内検索

設定ファイルのディレクトリ

ls /etc/logrotate.d/

ローテート作成

vi /etc/logrotate.d/sample

/var/www/sample/logs/access_log /var/www/sample/logs/error_log {
    daily
    rotate 4
    missingok
}
  • この例だと、日ごとにバックアップし、4世代保持する
  • missingokはログがないときでもエラーとしない

ローテートされてるか確認

/usr/sbin/logrotate -d /etc/logrotate.d/sample

前回ローテート履歴

vi /var/lib/logrotate.status

正規表現でパス記述

/var/www/sample/logs/*_log {

ログバックアップ後に圧縮コマンドをうつ

vi /etc/logrotate.d/sample
/var/www/sample/logs/access_log /var/www/sample/logs/error_log {
    daily
    rotate 4
    missingok
    sharedscripts
    postrotate
       ls *.log-* | grep -v gz | xargs gzip
    endscript
}

ログバックアップ後にコマンドをうつ

vi /etc/logrotate.d/sample
/var/www/sample/logs/access_log /var/www/sample/logs/error_log {
    daily
    rotate 4
    missingok
    sharedscripts
    postrotate
      sh /var/www/sample/bin/test.sh
    endscript
}

例:apacheのlogrotate設定はこんな感じ

$ vi /etc/logrotate.d/httpd
/var/log/httpd/*log {
   daily
   rotate 30
   missingok
   notifempty
   sharedscripts
   delaycompress
   postrotate
       /sbin/service httpd reload > /dev/null 2>/dev/null || true
   endscript
}