Apache の rotatelogs コマンドを使ってみる

いつも Apache のログは logrotate でローテーションさせてるんですが PostgreSQL のように単体?でできないかなと思っていたら ちゃんとそういうコマンドがあるようです。

[参考]
Apache のログ管理 | バシャログ。

さっそく設定してみます。 Ubuntu10.04 では rotatelogs は /usr/sbin に入っていました。

$ which rotatelogs
/usr/sbin/rotatelogs

自分でコンパイルした場合は prefix の指定配下の bin に入ります。 私は Apache2.4.2 を /usr/local/apache242 に入れたので rotatelogs は /usr/local/apache242/bin になります。

$ vi /usr/local/apache242/conf/httpd.conf

CustomLog の設定を参考サイトに合わせて変更します。

【変更前】
CustomLog "logs/access_log" common

 ↓

【変更後】
CustomLog "|/usr/local/apache242/bin/rotatelogs logs/access_log.%Y%m%d 86400 540" common

Apache を再起動。

$ sudo /usr/local/apache242/bin/apachectl restart

アクセスするとログが出力されます。

$ ls -1 /usr/local/apache242/logs
access_log
access_log.20120428
error_log
httpd.pid

これで Apache だけでログのローテーションが設定できるようになりました。

Google サイト内検索

Amazonアソシエイト