利用cronolog来做log转换..
http://www.cronolog.org/
获取新的cronolog
编译.安装
把CustomLog /usr/local/apache1.3/logs/access_log common 改成 CustomLog "|/usr/local/sbin/cronolog /usr/local/apache1.3/logs/access_log_%w" common
把ErrorLog /usr/local/apache1.3/logs/error_log 改成 ErrorLog "|/usr/local/sbin/cronolog /usr/local/apache1.3/logs/error_log_%w"
注:上面的%w表示一年中的第几个星期,更多信息看man cronolog,这样每周就会有新的log了..
然后重新运行apache.用graceful参数:
/usr/local/apache/bin/apachectl graceful
用vi编辑一个简单的脚本
#!/bin/bash find /usr/local/apache/logs/access* -mtime +31 -exec rm -f {} \; find /usr/local/apache/logs/error* -mtime +31 -exec rm -f {} \; /usr/local/apache/bin/apachectl graceful
这个脚本的作用是让系统自动删除一个月前修改过的文件
然后vi /etc/crontab
添加一行
* 3 * * 6 root /usr/local/apache/htdocs/ww/baksh/lograte.sh
这个表示刚才编辑的脚本在每周6的3点运行
附:crontab中五个*的含义。。。。
分 (0-59) 小时 (0-23) 日期 (1-31) 月份 (1-12) 周 (0-6)
Trotter 回复于:2003-01-29 11:25:04 嗯,我以前都是用at 、mv 来实现日志切割的,这种方法好 |