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 }