博客首页 注册 建议与交流 排行榜 加入友情链接
推荐 投诉 搜索: 帮助

Luotuo's Blog

梅花香自苦寒来,宝剑锋从磨砺出!
  huifeideluotuo.cublog.cn

关于作者
姓名:陈涛
职业:IT
年龄:25
位置:广东
QQQQ:99917434
Mail:huifeideluotuo_ct@163.com
个性:爱拼才会赢!

|| << >> ||
我的分类


apache日志管理
apache日志管理

web服务器日志轮循比较好的方式有三种:
第一种方法是利用Linux系统自身的日志文件轮循机制:logrotate;
第二种方法是利用apache自带的日志轮循程序rotatelogs;
第三种是使用在apache的FAQ中推荐发展已经比较成熟的一个日志轮循工具cronolog。

这里我给大家带来的是用apache自带的日志轮循程序rotatelogs,并用shell脚本定期删除日志文件,只保留近3天的文件,以免日志文件占满
磁盘空间。
修改主配置文件httpd.conf
找到以下内容,并修改成:
ErrorLog /var/log/httpd/error_log
CustomLog "|/usr/local/apache2/bin/rotatelogs  /var/log/httpd/access_log 86400 400M" combined
86400    ---日志滚动的时间是一天
400      ---日志文件最大400M就滚动
combined ---采用复合格式
 
然后建立清除日志文件的shell脚本,文件名为clean_log
#! /bin/bash
logdir=/var/log/httpd
cd ${logdir}
declare -i filesum=`ls access_log.* | wc -l`
declare -i delnum=$filesum-3
if [ "${delnum}" -ge 1 ];then
rm -rf `ls -tr access_log.* | head -${delnum}`
fi
 
chmod 755 clean_log
这样就保留了最近3天的日志文件。
 
建立自动化任务
01 04 * * * /usr/local/crontab/clean_log
ok,搞定,就这么简单。这样你就不用不必为日见增大的日志文件烦恼了!

发表于: 2006-11-24,修改于: 2006-11-28 14:31,已浏览1331次,有评论4条 推荐 投诉


网友评论
网友: smallfish 时间:2007-03-29 12:12:33 IP地址:61.153.6.★
请教一下,我按照你这个设置了,执行clean_log的时候老是提示脚本有错误,不知道是什么原因?:clean_log: line 4: declare: ls access_log.*|wc -l: syntax error in expression (error token is "access_log.*|wc -l")
clean_log: line 6: [-3: command not found


网友: huifeideluotuo 时间:2008-03-24 23:19:30 IP地址:59.40.98.★
`ls access_log.* | wc -l`  ,一定要注意 “·” ,表示命令执行。

网友: 本站网友 时间:2008-05-06 12:00:18 IP地址:61.144.175.★
谢谢指点,好不容易找到了你的这篇精华啊。谢谢哥们

网友: 本站网友 时间:2009-03-07 12:38:28 IP地址:119.123.201.★
这篇文章真的很有用,谢谢!!!

 发表评论