Apacheのログローテーション

sasaki 木曜, 2006-04-06 13:57

 

 ■ログローテーションするためのシェルスクリプト

loglotate.sh

 #! /bin/sh
LOGFILES="access_log error_log script_log ssl_misc_log"
DATE=`date +%Y%m%d`
LOGDIR="/export/home/www/logs"

# ログファイルのバックアップ
for i in $LOGFILES
do
    mv $LOGDIR/$i $LOGDIR/$i.$DATE
done


kill -HUP `cat /var/run/httpd.pid`
sync

for i in $LOGFILES
do
    gzip $LOGDIR/$i.$DATE
done
for i in $LOGFILES
do
    chown apache:apache $LOGDIR/$i
done

 

■cronで毎晩、自動実行させる

# crontab -e

# Crontab fields:
#
#        minute (0-59),
#        hour (0-23),
#        day of the month (1-31),
#        month of the year (1-12),
#        day of the week (0-6 with 0=Sunday).
#
50 23 * * * /etc/cron.daily/logrotate.sh