logrotateで気づいたこと
現在CentOSベースで基盤環境作成してるものがあるんだけど、その中でsquidのaccess.logを解析してPostgreSQLにデータ登録しようとしたときに気づいたのでメモ。
access.logが毎日logrotateでローテートされるときに、切替後のログファイルを対象として解析、データ登録をしようとしてた。なので /etc/logrotate.d/squid をこうしてた
/var/log/squid/access.log { # weekly daily rotate 5 copytruncate compress notifempty missingok postrotate /usr/bin/php /var/www/usage/scr/rep_accesslog.php endscript }
で、rep_accesslog.php で処理対象ファイルを /var/log/squid/access.log.1.gz にしててもぜんぜん処理が行われなくておっかしいなぁ〜って思ってたのですが。
ふと思いついて、処理対象ファイルを /var/log/squid/access.log.1 にしたところ、正常に処理されました。
どうやら。
postrotate で実行されるスクリプトは compress より先に実行されるみたい。ひとつ勉強になった。