[[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
 }

~
~

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS