Apacheのログのローテーション

[simple-way:~] CTO% cat 2008年08月07日14:59.txt

よく考えたら、logrotateかrotatelogsを使わなくてもcronで定期的に実行すればいいのではないですかね。

ということで、定期的にログを切り分けるシェルスクリプト書いてみました。これを希望する期間のcronディレクトリに突っ込んでおけば自動的に切り分けてくれます。

ひとまず、うちの場合はアクセス数がそれほど多くないということで、cron.monthlyディレクトリに入れておきました。

パスやファイル名はそれぞれ違うと思うので、適宜変更してください。インデントのために全角スペースとかも入っています。

#!/bin/bash

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
STR_STAMP=`date '+%Y%m%d'`
STR_HOME="[ウェブサイトが入っているディレクトリ]"

for STR_DIR in `ls ${STR_HOME}`
do
  if [ -s ${STR_HOME}/${STR_DIR}/logs/log_access ] || [ -s ${STR_HOME}/${STR_DIR}/logs/log_error ] ; then
    mv ${STR_HOME}/${STR_DIR}/logs/log_access ${STR_HOME}/${STR_DIR}/logs/log_access_${STR_STAMP}
    mv ${STR_HOME}/${STR_DIR}/logs/log_error ${STR_HOME}/${STR_DIR}/logs/log_error_${STR_STAMP}
    touch ${STR_HOME}/${STR_DIR}/logs/log_access
    touch ${STR_HOME}/${STR_DIR}/logs/log_error
  fi
done
/etc/rc.d/init.d/httpd restart


[simple-way:~] CTO% []

Blog Top

プロフィール
CTO
CTO

  • 1985年7月
    山梨県生まれ

  • 2002年12月
    日本学生科学賞 ソリューション部門 入選1等
    (巨大壁画設計アプリケーションの開発)

  • 2004年4月
    AC入試にて筑波大学第三学群情報学類へ入学

  • 2007年4月
    株式会社シンプルウェイ
    取締役 兼 CTO(最高技術責任者)に就任

  • 2008年3月
    筑波大学第三学群情報学類を無事卒業!!


QRコード
QRCODE