apacheを再起動しないでlogrotateを実行する。

通常apacheのlogroteスクリプトは↓の様になっており

# cat /etc/logrotate.d/httpd
/var/log/httpd/*log {
missingok
compress
notifempty
sharedscripts
delaycompress
postrotate
/bin/systemctl reload httpd.service > /dev/null 2>/dev/null || true
endscript
}

ログの切り替えの為にapacheの再起動・reloadが行われて一度プロセスが落ちてしまいます。
プロセスを落とさないでlogrotateを行う為には何か方法が無いものか見て見ると
logrptateのmanにかいて有りました。

copytruncateというオプションを使用するようです。
manが言うには、現行のログファイルをコピーしてrotateを行い
書き込み中のlogファイルに永続的に記録を続ける見たいですね。

copytruncateオプションを入れて書いた httpdのlogrotateの設定が↓

/var/log/httpd/access_log /var/log/httpd/error_log {
daily
compress
missingok
rotate 60
notifempty
sharedscripts
copytruncate
}

logrotate -dv /etc/logrotate.d/httpd

でテスト実行して記述に問題が無い事を確認したら
ログをtailしつつ対象サーバーにF5連打でログを記録しながら強制logrotate

logrotate -f /etc/logrotate.d/httpd

数回試しても問題ないようです。

おしまい

apache高速化モジュールapcでエラー

タイトルではapcでエラーってなってますが・・。
ただ説明書読まなかっただけですね。
以下のエラーが
/var/log/httpd/error_log
で表示されてました。
PHP Warning: PHP Startup: apc.shm_size now uses M/G suffixes, please update your ini files in Unknown on line 0
続きを読む "apache高速化モジュールapcでエラー"