logrotateで気づいたこと

現在CentOSベースで基盤環境作成してるものがあるんだけど、その中でsquidaccess.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 より先に実行されるみたい。ひとつ勉強になった。