この記事は会員限定です。会員登録すると全てご覧いただけます。
ソースからのコンパイルを行ったApacheでは、インストール(make install)後でもlogrotateのスケジュールに含まれない。ここではlogrotateに加える方法を解説しよう。
Apache単体でも「Apacheのログファイルを定期的に分割させたい〜rotatelogs編〜」で解説したように、「rotatelogs」と呼ばれるスクリプトが用意されている。しかし、「ログローテートツール「logrotate」を使いこなしたい」で紹介しているように、logrotateツールで一括管理したほうが、管理上も分かりやすいだろう。
手順は簡単であり、次のようにapacheファイルを作成すればよい。ここでは毎月ローテートを実行し、50世代のバックアップ保存を行うという設定を挙げている。
# vi /etc/logrotate.d/apache /usr/local/apache/logs/access_log { rotate 50 monthly postrotate /usr/bin/kill -HUP `/bin/cat /usr/local/apache/logs/httpd.pid` endscript } /usr/local/apache/logs/error_log { rotate 50 monthly postrotate /usr/bin/kill -HUP `/bin/cat /usr/local/apache/logs/httpd.pid` endscript }
念のため、killでプロセス再起動ができるかを可能しておくとよいだろう。次のように、番号が一致しているかを調べればよい。
# cat /usr/local/apache/logs/httpd.pid 513 # ps ax|grep httpd 513 ? S 0:00 /usr/local/apache/bin/httpd 515 ? S 0:03 /usr/local/apache/bin/httpd 516 ? S 0:04 /usr/local/apache/bin/httpd 〜以下略〜
表示されるhttpdプロセスで、いちばん若い番号が一致していればよい。
Copyright © ITmedia, Inc. All Rights Reserved.