关闭

apache 的轮换日志问题

313人阅读 评论(0) 收藏 举报

使用cronolog可以格式化日志文件的格式,比如按时间分割,易于管理和分析。 
当apache日志太大了 也会严重影响服务器效率 
cronolog的安装配置非常简单,简要说明如下: 



1.下载软件 
http://cronolog.org/download/index.html 

2.解压缩 
gzip -d cronolog-1.6.2.tar.gz 
tar xf cronolog-1.6.2.tar 

2.进入相应的目录./configure 
3.make 
4.make install 
5.修改apache配置文件 

自定义日志格式 
CustomLog "|/usr/local/sbin/cronolog /opt/apache/logs/access_log.%Y%m%d" combined 
如果在虚拟站点中也可以自定义日志的存放方式 

我用的方式 
CustomLog "|/usr/local/sbin/cronolog /usr/local/apache/logs/%Y%m%d/access_log.%Y%m%d.%H" combined 
#每1个小时写1个log文件,自动删除log的文件在crontab -e配置 

自动删除7天前的log脚本 
用root帐号 crontab -e 
然后输入 
10 22 * * * /usr/local/apache/bin/rmlog.sh 
然后esc shift+: x 回车保存文件 
每天22点10分就会自动运行该脚本 
rmlog.sh脚本代码 


#!/bin/bash 
shlog=/usr/local/apache/logs/sh.log 
logpath="/usr/local/apache/logs/" 
today=$(date +%Y%m%d) 
file="access_log".$today 

oldfile="$logpath"$(date +%Y%m%d --date='7 days ago') 

echo $oldfile 


#if [ -f $oldfile ] 
#then 
rm -rf $oldfile >>$shlog 2>&1 
echo "[$(date +%Y%m%d)][$(date +%T)][$oldfile] Delete Success!">>$shlog 
#else 
# echo "[$(date +%Y%m%d)][$(date +%T)][$oldfile] No Old File!">>$shlog 
#fi 


这段脚本每次执行输出执行结果到一个sh.log文件中以让自己知道 执行结果

 

 


[root@server3 ~]# date
二 1月 9 09:47:22 CST 2007
[root@server3 ~]# /usr/local/apache2/bin/httpd -v
Server version: Apache/2.0.54
Server built:  Sep 1 2006 16:58:34
[root@server3 ~]#
CustomLog "|/usr/local/apache2/bin/rotatelogs /usr/local/apache2/logs/music-access_log.%Y%m%d 86400 480" combined
TransferLog "|/usr/local/apache2/bin/rotatelogs /usr/local/apache2/logs/music-access_log.%Y%m%d 86400 480"

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:10340次
    • 积分:239
    • 等级:
    • 排名:千里之外
    • 原创:14篇
    • 转载:3篇
    • 译文:0篇
    • 评论:0条