星期五, 十二月 12, 2008

关于日志归档

这两天处理日志导致linux的文件系统过大,记录一下。

关于os标准服务的日志,一般可以用logrotate来处理。
如果是apache的access日志,有3种处理办法。
其1,用logrotate来处理。需要注意代码,/usr/bin/killall -HUP httpd 2> /dev/null || true ,否则可能不会记录新日志。
其2,用rotatelogs,修改httpd.conf文件。
建议写法:CustomLog "|/usr/local/apache/bin/rotatelogs /usr/local/apache/logs/%Y%m%d_access_log 86400 +480" common
其3,用cronolog,修改httpd.conf文件。
程序需要从http://www.cronolog.org/下载。

列举一下logrotate的配置方法。
可以编辑/etc/logrotate.conf文件来处理,也可以在/etc/logrotate.d/目录下新增一个文件。
例如:
vi /etc/logrotate.d/rflogview.zjs
/var/log/rflogview/system_info /var/log/rflogview/system_errors /var/log/rflogview/secure_info /var/log/rflogview/secure_errors {
#create 0600 root root
nocompress
notifempty
weekly
rotate 5
size 10M

sharedscripts
postrotate
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
endscript
}

vi /etc/logrotate.d/admin
# This configuration is from VBird 2005/10/24
/var/log/admin.log {
monthly
size=10M
rotate 5
nocompress
sharedscripts
prerotate
/usr/bin/chattr -a /var/log/admin.log
endscript
sharedscripts
postrotate
/usr/bin/killall -HUP syslogd
/usr/bin/chattr +a /var/log/admin.log
endscript
}

没有评论: