apache 的日志配置成按照每24小时生成一个日志文件的原则,但是有个问题是每个日志文件记录的时间是从每天的早晨八点钟到第二天的八点钟。这样的话我的awstats自动统计程序最好在每天早晨七点59分开始运行,crontab配置如下:
58 7 * * * root /apache/httpd/cgi-bin/awstats/awstats.pl -update -config=dlog
但是发现该任务每天是准时执行了,却没有生成统计数据,研究后发现awstats是取当前时间(第二天)对应的日志文件,但是这个日志文件却还没存在,所以也就没有新的统计数据。
因此我们需要给awstats指定一个标识昨天的日志文件,awstats可以通过-LogFile参数来指定,我只好写一个脚本来完成这个功能,然后定期的执行该脚本,脚本的代码如下:
yesterday=`TZ=GMT+16;export TZ;date +%Y%m%d`
logfile="/apache/httpd/logs/access_$yesterday.log"
/apache/httpd/cgi-bin/awstats/awstats.pl -update -LogFile=$logfile -config=dlog
首先获取昨天的日期(格式为:20060620),然后组合成日志文件名传递给awstats。最后将定期执行的命令修改成这个脚本的路径即可,如下:
58 7 * * * root /apache/httpd/cgi-bin/awstats/stat.sh
刚刚得知另外一种方法,就是直接在awstats的配置文件指定参数
LogFile="/apache/httpd/logs/access_%YYYY-24%MM-24%DD-24.log"
这才是最最简单的方法,而且可以在8点以后执行,亲娘嘞,faint。
心情: 一般