Linux系统自带的日志滚动压缩服务logrotated

似乎有不少童鞋不知道这个小功能,至少,上周面试了3位,大都是自己写脚本来处理日志的滚动压缩。

因此,分享到这里,熟悉的童鞋请忽略。


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
举例说明:
 
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自带的版本是啥样的:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[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
}


上一篇:kafka基础概念分享


下一篇:HashMap理解