Apacheのログファイルの肥大化を回避させたい

» 2001年03月28日 00時00分 公開
[木田佳克ITmedia]

この記事は会員限定です。会員登録すると全てご覧いただけます。

 本稿執筆時点のRed Hat系のLinuxであれば、標準パッケージのApacheインストール直後にあらかじめログファイル容量の肥大化を回避するツール「logrotate」が含まれている。

# rpm -qa | grep logrotate
logrotate-3.3.2-1

 このため、次のようなスクリプトを自ら作成する必要はないだろう。しかし、自分の環境には含まれていない、またはスクリプトの処理内容を知ってみたいという人には参考にしてほしい。

 次のスクリプトは、Apacheのログを月ごとにバックアップして毎月1日の0時にcronで動かすことを想定しているものだ。

#!/bin/sh
APACHEDIR=/usr/local/apache
LOGDIR=/var/log/httpd
LOG=access_log
DATE='/sbin/date "+%Y%m"'
if [ -x $APACHEDIR/bin/apachectl ]; then
$APACHEDIR/bin/apachectl stop # apache stop
cd $LOGDIR
mv $LOG $LOG.$DATE
touch $LOG
$APACHEDIR/bin/apachectl start # spache start
fi

 1行目は、動作させるシェルの指定(#!/bin/sh)、2〜5行目は変数指定である(xxxxxx=)。それぞれの変数にディレクトリやファイル名を代入している。

 「if」以下の行が処理内容になるが、主にapcaheのコントロールコマンド「apachectl」を使い、停止している際にログファイルをバックアップして新たなファイルを作成するという手順だ。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ