かえでBlog

色々なことを徒然と……

AWStatsで日付のログを見に行く

      2013/04/29

前回、Apacheでローテーションの設定を行いました。

しかし、ローテーションを行ったせいかAWStatsが正常に動かなくなりました……

Vine5からはaccesslog.1のような数字ではなく、日付のローテーションになったためです。

/etc/logrotate.conf を見るとdateextという項目があったからなんですけど、数字よりも日付のほうが管理しやすいので、AWStatsのシェルスクリプトを変更することにしました。
#!/bin/sh

ALOG=/var/log/apache2/syosan/access_log
 A1LOG=/var/log/apache2/syosan/access_log-
 NEWLOG=/var/log/apache2/syosan/access_log.new
 UTF8LOG=/var/log/apache2/syosan/access_log.utf8
 UTF8DECODE=/home/tkrtkai/public_html/awstats_syosan/utf8_decode.pl
 AWSTATS=/home/tkrtkai/public_html/awstats_syosan/awstats.pl
 LOG=/var/log/awstats.log

#cat $ALOG > $NEWLOG

cat /var/log/apache2/syosan/test.txt > $NEWLOG

a=10
 while [ $a -ge 0 ]
 do
 a=`expr $a - 1`
 day=`date -d $a'days ago' '+%Y%m%d'`
 day2=$A1LOG$day
 if test -e $day2;
 then
 A2LOG=$A1LOG$day
 echo $day2"が対象です。"
 cat $day2 >> $NEWLOG

fi
 done
 cat $ALOG >> $NEWLOG
 echo $a
 $UTF8DECODE < $NEWLOG > $UTF8LOG

$AWSTATS -config=awstats.conf -update > $LOG
 chmod 600 $LOG
 


シェルスクリプトなんてほとんど使ったことがないのですごく適当です…w
単純に10日前までwhileで1日ずつlogファイルがあるか調べに行き、あれば連結作業なければ前の日を探すという
作業をしています。
参考までにどぞです。

 - 備忘録 , , ,