为了方便分析网站的日志,需要将apache的日志按周来分割,网上搜索了下,cronolog可以完成这个功能,实际操作了下,操作过程中参考了这篇文章(http://www.lampbo.org/linux-xuexi/linux-sever/apache-logs-rotate.html),在此,谢谢作者。
注:作者原文对于httpd.conf的日志的配置中cronolog的文件地址配置有误,请参照我下面的操作记录进行操作。
下面是操作记录
#下载cronolog
wget http://cronolog.org/download/cronolog-1.6.2.tar.gz
#解压缩
tar -xzvf cronolog-1.6..tar.gz
#进入目录
cd cronolog-1.6.
#列出所有文件
ll
#configure
./configure --prefix=/usr/local/cronolog
#发现缺很多包,安装之
yum install gcc cc aclocal autoconf automake autoheader makeinfo
#再次configure
./configure --prefix=/usr/local/cronolog
#make
make
#安装
make install
#进入httpd的配置文件目录
cd /etc/httpd/conf
#备份httpd的配置文件
cp httpd.conf httpd.conf.
#编辑httpd的配置文件
vim httpd.conf
httpd.conf中修改如下两个部分:
#默认的错误日志,注释掉它
#ErrorLog logs/error_log #cronolog的配置,我们需要新增的
ErrorLog "|/usr/local/cronolog/sbin/cronolog /var/log/httpd/error_%Y_%W.log" #默认配置的日志
#CustomLog logs/access_log combined
#cronolog的配置,我们需要新增的
CustomLog "|/usr/local/cronolog/sbin/cronolog /var/log/httpd/access_%Y_%W.log" combined
配置好如上两个部分后,我们的apache的错误日志和访问日志都可以每周进行一次自动分割了。
关于cronolog的使用(以下内容转自:http://www.lampbo.org/linux-xuexi/linux-sever/apache-logs-rotate.html)
cronolog的用法和格式
语法:/path/to/cronolog [OPTIONS] logfile-spec
其中:
OPTIONS:cronolog的选项,可通过下面示例中的-h 或 –help选项查看
logfile-spec: 是描述输出的日志文件名的模板,每一个无前导%的字符都是文件名的组成部分,%后面跟一个字符为日期和时间格式串,将被下表列出的它们代表的实际字串所替换。
特殊格式串:
- %% %字符
- %n 新行
- %t tab字符
时间格式串:
- %H 24小时制小时(00..23)
- %I 12小时制小时(01..12)
- %p 本地AM/PM指示符
- %M 分钟(00..59)
- %S 秒(00..61)
- %X 本地时间(e.g.: “15:12:47″)
- %Z 时区 (e.g. GMT),如果不能检测出时区,值为空
日期格式串:
- %a 本地简短星期名(e.g.: Sun..Sat)
- %A 本地完整星期名(e.g.: Sunday .. Saturday)
- %b 本地简短月名(e.g.: Jan .. Dec)
- %B 本地完整月名(e.g.: January .. December)
- %c 本地日期与时间(e.g.: “Sun Dec 15 14:12:47 GMT 1996″)
- %d 一月中的第几日(01 .. 31)
- %j 一年中的第几天 (001 .. 366)
- %m 月名的数字表示 (01 .. 12)
- %U 一年中以星期日为每周第一天计算的星期数(00..53, 第一周包括新年的第一个星期日)
- %W 一年中以星期一为每周第一天计算的星期数(00..53, 第一周包括新年的第一个星期一)
- %w 星期名的数字表示 (0 .. 6, 0为星期日)
- %x 本地日期 (e.g. 今天在北京是: “15/12/96″)
- %y 不带世纪的年(00 .. 99)
- %Y 带世纪的年(1970 .. 2038)