Logrotate
関連記事
https://fedorahosted.org/logrotate/ より:
- ログファイルが大量に生成されるシステムで、ログファイルの管理を簡単にするために logrotate ユーティリティは作られました。Logrotate はログファイルの自動的なローテーション圧縮や削除、メール送信などを可能にします。Logrotate を設定することで、ログファイルを毎日毎周毎月ごとに管理したり、特定のサイズまで達した時の動作を決められます。
logrotate のローテーションでは、既存のログファイルに数字を割り振って名前を変更し、元の空のログファイルを再作成します。例えば、/var/log/syslog.log は /var/log/syslog.log.1 に名前が変更されます。/var/log/syslog.log.1 が既に存在する場合、名前は /var/log/syslog.log.2 に変更されます (バックログの数は設定で変えられます)。
インストール
logrotate は公式リポジトリに含まれており、base グループのメンバーとしてデフォルトでインストールされます。
logrotate はもはや cron ジョブを使用しません。代わりに systemd タイマーを使います: systemctl status logrotate.timer。
設定
logrotate の一番重要な設定ファイルは /etc/logrotate.conf です。また、/etc/logrotate.d ディレクトリには他の設定ファイルが含まれています。
トラブルシューティング
ログがローテーションされない
cron ジョブによってログがローテーションされない場合、user や group の所有者が間違っている可能性があります。どちらも root である必要があります。この問題を修正するには以下を実行:
# chown root:root /etc/logrotate.conf # chown -R root:root /etc/logrotate.d
もしくは、/etc/logrotate.conf で使いたいユーザーとグループに su 変数を設定してください。
exim のログがローテーションされない
/etc/logrotate.conf に olddir 変数を設定した場合、以下のようなメッセージが表示されます:
error: failed to rename /var/log/exim/mainlog to /var/log/old/mainlog.1: Permission denied
この問題を修正するには、ユーザー exim をグループ log に追加してください。そして olddir (/var/log/old) のグループをデフォルトの root から log に変更してください。