為了方便分析網站的日志,需要將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.2.tar.gz #進入目錄 cd cronolog-1.6.2 #列出所有文件 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.20130628 #編輯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)