Linux全般
logrotate、ログローテーションのまとめ [#yd03e7ff]
ログをローテーションさせるにはlogrotateが必要です。
以下に詳細を記載します。
各種ファイル場所 [#f8d8e25f]
設定メインファイル:基本このファイルを参照する。
# /etc/logrotate.conf
Includeされる設定ファイル
# /etc/logrotate.d/配下にあるファイル
logrotate.confにIncludeするデフォルトのディレクトリが記述されており、上記ディレクトリ配下のファイルは全て読み込まれる。
なお、Includeファイルの記述が優先的になるが、Includeファイルに記述されていない内容はlogrotate.confの内容が参照される。
設定確認コマンド [#sf3206c8]
# logrotate -dv 設定ファイル
強制的にローテーション実行 [#gaf008ca]
# logrotate -f ファイル
各種オプションまとめ [#ie4944fb]
rotate 数字 <--数字の分世代保存する。
例:rotate 15 <--15世代分保存する。
daily <--毎日
weekly <--毎週ログローテートを実施する
yealy <--毎年
compress <--圧縮する
delaycompress <--今の世代と一つ前の世代は圧縮せず、その前までを圧縮する
dateext <--保存したファイル名にyyyymmddを付加する
nodateext <--日付で保存せずに末尾に数字の連番を付加して保存する。
ifempty <--ログファイルが空でも処理する
notifempty <--ログファイルが空の場合は処理しない
missingok ←指定されたログファイルが無くてもエラーを出さず処理続行
sharedscripts ←複数のログファイルを指定している際は必要、これがないと複数ログファイルがローテーションされる際にpostrotate
endscriptが実行されてしまう
トラブルシュート [#h745c578]
エラー logrotate: ALERT exited abnormally with [1] [#a8626b59]
上記エラーがmessagesに記述されていると、ログがローテーションされていません。
一度 logrotate -dv /etc/logrotate.conf を実行して、設定ファイルを確認した方が良いです。
ローテーション対象のディレクトリが無い場合など、そのせいで全てのログがローテーションされないことになります。