logrotate


主な記述例

  • 毎日ローテーションする
  • 31日分(31世代まで)を残す
  • ローテーションしたファイルは圧縮する
  • ログファイルが存在しなくてもエラーを出力しない
  • 対象ログファイル「/var/log/myscripts/*.log」
    # vi /etc/logrotate.d/myscripts
    /var/log/myscripts/*.log {
        daily
        rotate 31
        compress
        missingok
    }


主なコマンド

コマンド内容
compressローテーションしたログをgzipで圧縮
copytruncateログファイルをコピーし、内容を削除
create パーミッション ユーザー名 グループ名ローテーション後に空のログファイルを新規作成。ファイルのパーミッション、ユーザー名、グループ名を指定可能
dailyログを毎日ローテーションする
delaycompressログの圧縮作業を次回のローテーション時まで遅らせる。compressと共に指定
ifemptyログファイルが空でもローテーションする
missingokログファイルが存在しなくてもエラーを出さずに処理を続行
monthlyログを毎月ローテーションする
nocompressローテーションしたログを圧縮しない
nocreate新たな空のログファイルを作成しない
nomissingokログファイルが存在しない場合にエラーを出す
noolddirローテーション対象のログと同じディレクトリにローテーションしたログを格納
notifemptyログファイルが空ならローテーションしない
olddir ディレクトリ名指定したディレクトリ内にローテーションしたログを格納
postrotate~endscriptpostrotateとendscriptの間に記述されたコマンドをログローテーション後に実行
prerotate~endscriptpostrotateとendscriptの間に記述されたコマンドをログローテーション前に実行
rotate 回数ローテーションする回数を指定
size ファイルサイズログファイルが指定したファイルサイズ以上になったらローテーションする
sharedscripts複数指定したログファイルに対し、postrotateまたはprerotateで記述したコマンドを実行
weeklyログを毎週ローテーションする

設定例

/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
Last-modified: 2022-06-30 (木) 01:40:11