您的位置:首页 > 运维架构 > Apache

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

2011-12-16 11:39 621 查看
清空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这个数字,可以根据自己的实际情况来 调整:)

本文出自 “玩linux…做运维…集群” 博客,请务必保留此出处http://scottlinn.blog.51cto.com/829656/743338
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: