天天看点

cronolog+crontab帮你更好的管理apache日志

  我们都知道在Linux系统中,apache的日志都存放于安装目录下的logs目录下,当用户访问网站的时候,具体的信息就会记录在access_log文件中,但是随着访问量不断的增加,日志文件就会越来越大,以至于不能很好的去管理它,而cronolog这个小软件就可以很好的帮助我们实现日志的切割任务。

一、软件安装

  我下载的是源码包,软件的安装非常简单。

  tar zxf cronolog-1.6.2.tar.gz  //使用tar命令解压缩包

  cd cronolog-1.6.2  //进入到软件目录中

  ./configure –prefix=/usr/local/cronolog  //定义软件的安装目录

  make && make install  //编译安装

二、配置Apache

  软件安装过程中没有太复杂的东西,同样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更加完美

  日志分割完了,我们还可以使用压缩命令将每天产生的日志进行打包处理,一是节省磁盘空间,同时还可以定期将压缩好的日志转移到其他地方备份起来,方便我们随时查看,而这个任务我们可以配合系统自带的crontab系统计划任务来实现。

1、首先我们在root目录下写一个压缩日志的脚本

  #!/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,如需转载请自行联系原作者