読者です 読者をやめる 読者になる 読者になる

本番運用にともなって CentOS5

セッションファイル削除 cron

Railsの1.2.5だとセッションファイルが溜まっていくため、定期的に削除する。

0 * * * * find /APP_ROOT/tmp/sessions/ -name 'ruby_sess*' -ctime +10 | xargs rm -f

ログローテーション

railsのデフォルト設定ではログファイルをロールオーバーしてくれないので、放っておくとログファイルがどんどん肥大化していくため、ログローテートを行う.
これは 14日分のログをローテートして、古いログファイルは圧縮し、新しい空のログファイルをウェブサーバーが書き込み可能な状態で作成する。

設定ファイル
vi /etc/logrotate.d/hoge
-----
/APP_ROOT/log/*.log {
        daily
        missingok
        rotate 52
        compress
        delaycompress
        notifempty
        copytruncate
        create 0666 nikko nikko
}
-----
テスト

実際にログローテートするか確認する。

  • dは実際にログを作らないためのオプション。

ログを作る場合は-dを外す。

# logrotate -dv /etc/logrotate.d/chkrootkit
reading config file /etc/logrotate.d/chkrootkit
reading config info for /var/log/chkrootkit.log

Handling 1 logs

rotating pattern: /var/log/chkrootkit.log  after 1 days (30 rotations)
empty log files are rotated, old logs are removed
considering log /var/log/chkrootkit.log
  log does not need rotating

log does not need rotating
が出てログファイルを作成できない場合は
/var/lib/logrotate.status
の該当ログファイルの日付を昨日の日付に戻して再度実行。
本ファイルがログ実行した日付を管理している