我们都知道在Linux系统中,apache的日志都存放于安装目录下的logs目录下,当用户访问网站的时候,具体的信息就会记录在access_log文件中,但是随着访问量不断的增加,日志文件就会越来越大,以至于不能很好的去管理它,而cronolog这个小软件就可以很好的帮助我们实现日志的切割任务。
默认情况下apache是不支持日志分段的,就是有规律的将日志切割开,从而便于我们管理,cronolog这个软件可以帮我们很大的忙,大家可以到 网站中下载cronolog软件。
tar zxf cronolog-1.6.2.tar.gz
//使用tar命令解压缩包 cd cronolog-1.6.2
//进入到软件目录中 ./configure –prefix=/usr/local/cronolog
//定义软件的安装目录 make && make install
//编译安装 软件安装过程中没有太复杂的东西,同样apache配置文件的修改也是非常简单,使用vi命令打开apache的配置文件httpd.conf
1.在配置文件中找到CustomLog logs/access_log combined替换为CustomLog “|/usr/localcronolog/sbin/cronolog /www/apache/logs/web-%Y%m%d.log” combined
2.其中要注意你cronolog的安装路径及apache的日志路径,最后的web-%Y%m%d.log为日志分割的格式,我这里是以web-年月日的形式
当我们重新启动apache访问网站后,可以看见apache日志已经按照日期的形式出现了,这样每天就会更新出一个新的日志,从而不会因为都在一个日志文件中而不便于管理。
日志分割完了,我们还可以使用压缩命令将每天产生的日志进行打包处理,一是节省磁盘空间,同时还可以定期将压缩好的日志转移到其他地方备份起来,方便我们随时查看,而这个任务我们可以配合系统自带的crontab系统计划任务来实现。
#!/bin/bash
LOG_WEB=”/etc/httpd/logs”
//根据自己的日志路径设置 DATE=`date -d yesterday +%Y-%m-%d`
//指定时间为前一天 cd $LOG_WEB
//进入日志目录 /bin/gzip bak_web-$DATE.log
//执行压缩命令 2、然后我们保存脚本为“ziplog.sh”并设置可执行权限,之后我们就可以将其添加到crontab系统计划任务中了。
crontab -e
//进入crontab的编辑界面,添加如下内容 0 1 * * * sh /root/ziplog.sh
//设定每天凌晨1点执行脚本任务,保存退出 使用“crontab -l”可以查看我们刚才添加的命令
到此,我们就可以让apache日志有一个规律性的操作,从而方便的管理了,如果有需要我们还可以编写一个定期将apache日志转移的脚本,这里就不为大家演示了。
简单的系统命令及操作,只要很好的配合使用起来就能够完成很多任务,我想这也是Linux系统本身的魅力所在,还有更多技巧性的应用,慢慢去发掘吧!
本文转自阿布ve 51CTO博客,原文链接:http://blog.51cto.com/abuve/649778,如需转载请自行联系原作者