[[logrotate]]
~
*主な記述例 [#r8a02941]
-毎日ローテーションする
-31日分(31世代まで)を残す
-ローテーションしたファイルは圧縮する
-ログファイルが存在しなくてもエラーを出力しない
-対象ログファイル「/var/log/myscripts/*.log」
~
# vi /etc/logrotate.d/myscripts
/var/log/myscripts/*.log {
daily
rotate 31
compress
missingok
}
~
*主なコマンド [#hd3d6b89]
|コマンド|内容|
|compress|ローテーションしたログをgzipで圧縮|
|copytruncate|ログファイルをコピーし、内容を削除|
|create パーミッション ユーザー名 グループ名|ローテーション後に空のログファイルを新規作成。ファイルのパーミッション、ユーザー名、グループ名を指定可能|
|daily|ログを毎日ローテーションする|
|delaycompress|ログの圧縮作業を次回のローテーション時まで遅らせる。compressと共に指定|
|ifempty|ログファイルが空でもローテーションする|
|missingok|ログファイルが存在しなくてもエラーを出さずに処理を続行|
|monthly|ログを毎月ローテーションする|
|nocompress|ローテーションしたログを圧縮しない|
|nocreate|新たな空のログファイルを作成しない|
|nomissingok|ログファイルが存在しない場合にエラーを出す|
|noolddir|ローテーション対象のログと同じディレクトリにローテーションしたログを格納|
|notifempty|ログファイルが空ならローテーションしない|
|olddir ディレクトリ名|指定したディレクトリ内にローテーションしたログを格納|
|postrotate~endscript|postrotateとendscriptの間に記述されたコマンドをログローテーション後に実行|
|prerotate~endscript|postrotateとendscriptの間に記述されたコマンドをログローテーション前に実行|
|rotate 回数|ローテーションする回数を指定|
|size ファイルサイズ|ログファイルが指定したファイルサイズ以上になったらローテーションする|
|sharedscripts|複数指定したログファイルに対し、postrotateまたはprerotateで記述したコマンドを実行|
|weekly|ログを毎週ローテーションする|
*設定例 [#gacace01]
/var/log/httpd/*_log {
daily
rotate 90
compress
delaycompress
missingok
notifempty
sharedscripts
postrotate
/sbin/service httpd reload > /dev/null 2>/dev/null || true
endscript
}
~
~