AWstats 如何统计旧日志

awstats 文档中提供了一个方法 ,需要清空过去所有的统计数据,并依次重新更新所有的历史日志;另外还包含了一个tips,不必清空所有过去的统计数据,就可以把过去遗漏的某天数据加入统计,但依然要求清空一整个月的统计数据。

这些历史统计数据保存在config 文件中DirData 参数所定义的目录中,并且是按月保存的。

awstats.micronsky.com.conf :

DirData=”./xyz”

目录包含文件:

awstats012007.micronsky.com.txt
awstats022007.micronsky.com.txt
awstats032007.micronsky.com.txt
awstats042007.micronsky.com.txt

如果4月的统计数据,仅仅漏了25日,导致了当月的数据缺乏完整性。

想要补上25日的统计数据,只有清楚4月份的统计数据文件:awstats042007.micronsky.com.txt,并从4月1日开始依次更新所有统计数据。对于上G的日志,这个工程势必是要花费很多时间和精力的。

经查看awstats 历史统计数据文件,找到解决方法,算是另外一个tips 。

以下代码片段来自4月份统计数据文件:awstats042007.micronsky.com.txt 。LastTime 参数保存了统计的http 日志条目最晚的时间(区别于运行update 的时间),我们可以通过把其他几个时间参数修改为此时间,并且重置一些条目参数来达到目的。

LastLine 20070416000000 4386 898321 47205111575
FirstTime 20070401002121
LastTime 20070412035620
LastUpdate 20070416000004 2542 0 0 0 2542

下面是修改后的条目:(修改前请先备份旧文件!)

LastLine 20070412035620 0 0 0
FirstTime 20070401002121
LastTime 20070412035620
LastUpdate 20070412035620 0 0 0 0 0

接着修改config 文件,注释掉原来的日志路径,指向到旧的日志压缩文件。

1
2
#LogFile="/home/username/logs/micronsky.com/http/access.log"
LogFile="gzip -d </home/username/logs/aiview.com/http/access.log.2007-04-12.gz |"

然后运行命令更新统计数据。(注意:如果设置有crontab,操作前最好先disable 任务,免得引起不期望的结果)

1
$ ./awstats.pl -config=19.com -update

这时刷新统计页面,已经可以看到13日的统计数据,依次在config 文件中把日志更换为13、15日的文件,并逐次运行更新,即可把所缺日志依次补回。

这种方法虽然不要求具有当天至月初的所有访问日志文件,但要求具有所补日期至当天或者至当月末的所有日志文件。