清空apache的访问日志以及使用cronolog分割apache日志

清空apache的访问日志解决方法:

echo -n > /var/www/logs/access.log ;

很简单吧 ;呵呵。下面介绍一下使用cronolog分割apache日志,使用awstats分析按日期生成的apache日志

 

网上安装cronolog的介绍文章相当多,我这里就不重复介绍了。

安装好后,就需要改apache的配置文件httpd.conf,将原来指定日志文件的地方做一下替换:
CustomLog /var/www/logs/access.log combined
替换成
CustomLog "|/usr/local/sbin/cronolog /var/www/logs/access.log.%Y%m" combined
注:CustomLog之后没有回车:)只是空格
其中,/var/www/logs 表示你的log存放的路径;/usr/local/sbin/cronolog为cronolog所在的路径,可以通过 which cronolog 的命令来查看;%Y%m表示按照年月来分割,这样一个月就会生成一个日志文件,如果要按照每天生成一个日志文件,好像是%Y%m%d

然后重启一下apache,就会发现apache日志开始按照日期生成,而原来的apache日志文件就不会再记录新的访问数据了。

这时,如果有使用awstats的人也许会遇到一个问题,因为apache动态生成日志,所以得相应修改awstats中的配置文件。
将awstats配置文件中的LogFile做相应的修改
LogFile="/var/www/logs/access.log"
改为
LogFile="/var/www/logs/access.log.%YYYY-24%MM-24"
其中,我原来一直搞不明白.%YYYY-24%MM-24是什么意思,后来查了很多资料,终于恍然大悟:%YYYY-24 表示24小时之前的年份,%MM-24表示24小时之前的月份,合起来%YYYY-24%MM-24就表示24小时前的年月。为什么要减去一个24呢,这 是因为我们在使用awstats分析apache日志的时候,必须分析已经生成的日志。而我们又常常使用cron来自动update,举个例子,当我们于2011年12月15日凌晨1点分析我们网站的apahce日志的时候,我们是要分析前一天也就是2011年12月14日的日志,而不是cron运行的当天12月15日的日志:)这样,减去一个数字,才能够正确得到我们想要分析的apche的日志的文件名。当然,你也可以不用24这个数字,可以根据自己的实际情况来 调整:)

你可能感兴趣的:(职场,休闲,apache日志,清空apache日志,cronolog分割)