Apacheのログローテーション
- 2006.04.06
- Webマスター
■ログローテーションするためのシェルスクリプト
logrotate.sh
#! /bin/sh # # Apache Log Rotate # # ログファイルが置いてあるディレクトリを指定する。 LOGDIR="/export/home/www/logs" # ログローテーションしたいファイルを指定する。(複数OK) LOGFILES="access_log error_log script_log ssl_misc_log" # (1)か(2)を選ぶ。 # (1) 今日の日付を取得する。(日本時間。TZ=JST-9 date と date は等価) DATE=`TZ=JST-9 date +%Y%m%d` # (2) 昨日の日付を取得する(24時間前の日付を取得。-9+24=15) DATE=`TZ=JST+15 date +%Y%m%d` # ログファイルをバックアップする。 for i in $LOGFILES do mv $LOGDIR/$i $LOGDIR/$i.$DATE done # Apacheを再起動する。 kill -HUP `cat /var/run/httpd.pid` sync # バックアップしたログファイルを圧縮する。 for i in $LOGFILES do gzip $LOGDIR/$i.$DATE done sync # バックアップしたログファイルと新規ログファイルのオーナーを変更する。 for i in $LOGFILES do chown foo:staff $LOGDIR/$i.$DATE.gz chown foo:staff $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). # 0 0 * * * /etc/cron.daily/logrotate.sh
-
前の記事
リンク集 2006.04.05
-
次の記事
SiteTracker使ってます 2006.04.06