Я запускаю CentOS6, и я настроил 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
файл.
Мои результаты, когда я запускаю команду, выглядят так:
rotating log /var/log/iptables.log, log->rotateCount is 4
dateext suffix '-20121021'
Я в замешательстве. Как мне заставить logrotate свернуть файл? Я не уверен на 100%, правильно ли я его настроил, но я не знаю достаточно, чтобы быть уверенным, что это так.
Я считаю, что более эффективным решением было бы фактически создать конкретный экземпляр logrotate для iptables вместо того, чтобы добавлять его непосредственно в ваш экземпляр syslog logrotate.
Сделайте это:
$ touch /etc/logrotate.d/iptables
Теперь настройте логротацию, как хотите, пример будет следующим (вы можете найти все параметры ЗДЕСЬ (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
}
Это должно обеспечить функциональность, которую вы ищете.