shisgmei 发表于 2018-11-27 06:12:37

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

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

  默认情况下apache是不支持日志分段的,就是有规律的将日志切割开,从而便于我们管理,cronolog这个软件可以帮我们很大的忙,大家可以到 http://cronolog.org/download/index.html 网站中下载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系统本身的魅力所在,还有更多技巧性的应用,慢慢去发掘吧!

  原创文章首发自阿布的博客,转载请注明,本文地址:http://www.abuve.com/356.html



页: [1]
查看完整版本: cronolog+crontab帮你更好的管理apache日志