FrontPage

お品書き


定義の書き方

/etc/logrotate.confか/etc/logrotate.d/__config_filename__に書く(OSによって異なる)。

statecheck.logというファイルを以下の条件でローテーションする設定例。/etc/logrotate.d/statecheckとして書く想定。

  • 毎週
  • 5世代保存
  • 新しい空のログファイルを作る
  • デーモンを再起動する
/some/where/statecheck.log {
  weekly
  rotate 5
  create
  postrotate
    kill `cat /some/where/statecheck.pid` &> /dev/null
    /some/where/statecheck_start.sh &> /dev/null
  endscript
}

ローテーションのテスト

logrotateの-dオプションを利用する。

実行。

# logrotate -d /etc/logrotate.d/statecheck

デバッグログの出力。

どのコンフィグファイルを読んだか、どのログを対象としたか、どのような条件でローテーションするか、実際にローテーションが必要かがずらずらっと出る。

reading config file /etc/logrotate.d/statecheck
reading config info for /some/where/statecheck.log 

Handling 1 logs

rotating pattern: /home/cms-admin/log/mysqlstatecheck.log  weekly (5 rotations)
empty log files are rotated, old logs are removed
considering log /home/cms-admin/log/mysqlstatecheck.log
  log does not need rotating
not running postrotate script, since no logs were rotated

この例では「log does not need rotating」と出力されていて、これはログローテーションが不要なことを表している。ローテーション不要な理由は出力されていないが、過去にログローテーションした日付が近すぎて(weeklyなので1週間以内)ローテーションされていない。

ログローテーションした日付はlogrotate.statusファイルに記録される(後述)。

ログを入れ替えた日付

logrotate.statusファイルに記録される。RedHat?/CentOSだと/var/lib/logrotate.statusファイルに、ファイル名、日付を空白で区切った形で記述される。

$ cat /var/lib/logrotate.status
〜
"/var/log/rpmpkgs" 2009-3-29
"/var/log/messages" 2009-3-29
"/var/log/secure" 2009-3-29
"/var/log/maillog" 2009-3-29
"/var/log/spooler" 2009-3-29
〜

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-05-27 (水) 19:10:22 (2979d)