質問: apacheでログを圧縮&再起動を掛けたい 長い質問ですみません。随分試行錯誤した上でまだ悩んでいます。 無料プロバイダを個人運営でやっているものなんですが、 サーバーのログをhttp.confの設定でこんな感じで作成し、 customlog /var/log/apache/xxx.xxx.ne.jp-access.log combined これをcsv扱いしてcgiで読み取り、解析をしています。 自動的に一週間でログの切り替えを行っている様で最初はこれでよかったのですが、アクセスが増えるにつれcgiとログファイルが非常に重くなってきました。 そこで、以下のことをしようと思っています。 cronを使えば良いのではないかと思いました。 1.一定のアクセスの少ない時刻にログ圧縮をかける (圧縮ファイルは上書きでよい。どっちみちそんなに遡っては見ないので) 2.apacheを再起動する (再起動かけないと新しいlogファイルが作成されない様なので) ちなみに手動では以下の方法で出来ました。 gzip /var/log/apache/xxx.xxx.ne.jp-access.log ps x kill プロセスid /usr/sbin/apache でも自動だと kill プロセスidがダメなんです。 同じidでapacheが起動してくれないので・・・。 1.apacheを一定時間に確実に再起動させる方法 2.それ以外の1日単位でログファイルの切り替えを行う方法 cgiが一定ファイルを読む仕掛けになってるので現在アクティブなファイルは 同じのままという条件で のどちらかを教えてください。 ちなみに、 http://www.rfs.co.jp/server/apache/06.html の方法はhttpd.pidがwhereisとかfind探しても見つからないという 理由により挫折してますのでこれはアドバイスしないでください。 見つける方法がわかればそれでもまあいいのですが。
回答: そうそう、どうしてもkillコマンドでプロセスを処理したい場合は、httpd.conf に pidfile /var/run/httpd.pid といった様な記述が見つかるかと思います。 この /var/run/httpd.pid ファイルに、apacheのプロセスidがテキスト数字で保存されますので、 kill -kill `cat /var/run/httpd.pid` とすれば、現在起動中のapacheのプロセスidを指定出来ます。