1. Top
  2. Apache
  3. Apacheのlogrotate

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

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

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


このため,次のようなスクリプトを自ら作成する必要はないだろう。しかし,環境にはlogrotateが含まれていない場合、 次のスクリプトは,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」を使い,停止している際にログファイルをバックアップして新たなファイルを作成するという手順だ。

ページの先頭へ