使用logrotate旋转Iptables日志

我正在运行CentOS6,并configuration了rsyslog来监视我的iptables警告消息,并将它们转储到/var/log/iptables.log 。 我经历了我的logrotate.d/syslog文件,并添加iptables.log所以logrotate将拿起并旋转日志。 该文件如下所示:

 /var/log/cron /var/log/maillog /var/log/messages /var/log/secure /var/log/spooler /var/log/iptables.log { sharedscripts postrotate /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true endscript } 

但是,当我运行logrotate -f -v logrotate.conf来触发一个强制滚动时,iptables.log文件不会滚动。 为了使logrotate不是iptables文件上的iptables.log-20121014 ,我创build了一个iptables.log-20121014文件。

我运行命令时的输出如下所示:

 rotating log /var/log/iptables.log, log->rotateCount is 4 dateext suffix '-20121021' 

我正在失望。 我如何获得logrotate滚动文件? 我不是100%确定,如果我configuration正确,但我不知道足以确定如果是这样的话。

我相信一个更有效的解决scheme是为iptables实际创build一个特定的logrotate实例,而不是直接将其添加到您的syslog logrotate实例。

做到这一点:

 $ touch /etc/logrotate.d/iptables 

现在,根据需要configurationlogrotation,一个例子如下(你可以在这里find所有的选项(logrotate.conf) :

 $ vi iptables /var/log/iptables.log { missingok notifempty size 30k create 0600 root root postrotate /etc/rc.d/init.d/rsyslog restart ; sleep 5 endscript } 

这应该提供您正在寻找的function。