スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Apacheのログ設定とログ削除

バックアップやログの話などインフラな話題が続きますが、今回はApacheのログです。
Apacheのログローテートはlogrotateとrotatelogの二種類があります。
logrotateはローテートのタイミングでプロセスの再起動が必要になり、rotatelogはログを書く度に余分なプロセスを起動する分、重くなります。
とりあえず、現在はそれほどCPU負荷が高くないので、rotatelogを採用しました。
■http.confの設定

CustomLog "|/opt/httpd/bin/rotatelogs -l /var/log/httpd/access/%Y%m%d.log 86400" common
ErrorLog "|/opt/httpd/bin/rotatelogs -l /var/log/httpd/error/%Y%m%d.log 86400"

86400秒、つまり一日ごとにログローテートしています。-lオプションを付けることで、ローカルタイムで日付が変更されます。 ログの出し方はcommonとconbinedがありまして、conbinedはリファラーとユーザエージェントが追加されます。
■ログの削除スクリプト

#!/bin/bash
LOGDIR=/var/log/httpd/access
FILE_EXT=.log
BASE=$LOGDIR/`date -d '1 month ago' +%Y%m%d`$FILE_EXT
for FILE in `ls $LOGDIR/*$FILE_EXT`
do
if [ "$BASE" \> "$FILE" ];
then rm $FILE
fi
done
LOGDIR=/var/log/httpd/error
FILE_EXT=.log
BASE=$LOGDIR/`date -d '1 month ago' +%Y%m%d`$FILE_EXT
for FILE in `ls $LOGDIR/*$FILE_EXT`
do
if [ "$BASE" \> "$FILE" ];
then rm $FILE
fi
done

いつものように一ヶ月を超えるものは削除しています。
accessログとerrorログを別々に取っているので、それぞれ2回ループを回しています。

一行入魂サイトにまとめがあります。
スポンサーサイト

Tag : Apache

COMMENTS

COMMENT FORM

TRACKBACK


この記事にトラックバックする(FC2ブログユーザー)

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。