Logrotate の設定
某 EC サイトのリリースが控えている中で突然サーバを再起動され「pound が立ちあがらぬぇ!」という連絡を受けて作業しにきた僕です、明日もこいとかどういう事なの……だから SuitePro はやめておけとあれほど(略)。
そんな訳で今回は Apache のログを1ヶ月単位で gzip 圧縮していく設定です。とりあえず全部 Logrotate に任せてしまいます、シェルスクリプトを作成してもいいけど面倒だし、大体標準で提供されるからね。
とりあえず、 yum なり YaST なり、rpm からインストールすると、自動で /etc/logrotate.conf が生成されます。これは、同じく自動で生成される /etc/logrotate.d/ をインクルードしていますので、このディレクトリ以下に設定ファイルを配置します。配置するファイルは以下。
/home/USERS/logs/access_log /home/USER/logs/error_log { missingok ifempty sharedscripts daily compress rotate 30 postrotate /etc/init.d/httpd graceful endscript }
こんなん。
名前はなんでもおk、わかるように FQDN とかにするといいかもね。
以下のサイトさんを参考にしました。
http://memorva.jp/memo/linux/apache_logrotate.php
ちなみに、このローテート設定が正しいかテストにするには以下のように。
$ sudo /usr/sbin/logrotate -dv /etc/logrotate.d/FILENAME
こんだけ。
上記オプションだとログファイルに対して何も変更を行わないけど、付与するものによっては、実際にログファイルに対して操作とかも可能。
おまけ
実行するのは Crontab なので、パスの記述が必要な所はなるべく絶対パスの方がいいみたいですね。