Linux系统自带的日志滚动压缩服务logrotated
似乎有不少童鞋不知道这个小功能,至少,上周面试了3位,大都是自己写脚本来处理日志的滚动压缩。
因此,分享到这里,熟悉的童鞋请忽略。
举例说明:
cat <<_conf> /etc/logrotate.d/haproxy
/var/log/haproxy/haproxy.log
{
compress
copytruncate
daily
dateext
missingok
notifempty
rotate 2
}
_CONF
上述将增加一个logrotated的配置文件/etc/logrotate.d/haproxy
然后使用logrotate的默认设置来做日志滚动压缩:
/etc/logrotate.conf
也可以手动调用:
假设我们的配置文件放在:
/data/log/logrotate.d/haproxy
然后,在计划任务中配置:
59 23 * * * /usr/sbin/logrotate -f /data/log/logrotate.d/haproxy
其实,,如果你愿意深入琢磨一下,你会发现,我写的不咋样,仅是简单的一个示例。
接下来,请看看yum安装haproxy自带的版本是啥样的:[root@10-0-201-2 ~]# cat /etc/logrotate.d/
dracut haproxy haproxy.rpmnew iscsiuiolog syslog yum
[root@10-0-201-2 ~]# cat /etc/logrotate.d/haproxy
/var/log/haproxy/haproxy.log
{
compress
copytruncate
daily
dateext
missingok
notifempty
rotate 2
}
[root@10-0-201-2 ~]# cat /etc/logrotate.d/haproxy.rpmnew
/var/log/haproxy.log {
daily
rotate 10
missingok
notifempty
compress
sharedscripts
postrotate
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
/bin/kill -HUP `cat /var/run/rsyslogd.pid 2> /dev/null` 2> /dev/null || true
endscript
}