Последняя минута 2016 года (в соответствии с часовым поясом UTC) будет иметь 61 секунду, поэтому в часовом поясе UTC последняя секунда 2016 года будет 23:59:60. См. Високосную секунду в Википедии.
Системный вызов time ()
не учитывает дополнительных секунд (это требование POSIX), и, следовательно, для приложений, которые рассчитывают дату и время на основе time ()
будет одна секунда, которая будет отсчитана дважды, , если система не будет игнорировать дополнительную секунду и вместо выполнения шаговой регулировки будет вносить крошечные корректировки в течение следующих нескольких часов или дней.
Плохо написанные (или просто слишком старые) приложения могут некорректно вести себя при столкновении с минутами длиной 61 секунда. Параметр -x
(ссылка на статью HPE) отключает коррекцию ядра для дополнительных секунд и, таким образом, позволяет обычному протоколу NTP сглаживать выигрыш в одну секунду, используя обычные механизмы синхронизации времени. См. Пять различных способов обработки дополнительных секунд с помощью NTP для более подробного обсуждения способов сглаживания дополнительных секунд.
В примере с rsyslog.conf вы отправляете оба kern.*
И :msg, startswith, "NETFILTER"
в iptables.log, где kern.*
уже включает сообщения iptables.
В вашем примере исправьте kern. *назначение в rsyslog.conf файлу kern.log по умолчанию:
kern.* -/var/log/kern.log
Поместите это в /etc/rsyslog.d/iptables.conf и перезагрузите/перезапустите rsyslog:
:msg, regex, "NETFILTER" -/var/log/iptables.log
& ~
Обратите внимание на «regex» вместо «startswith». Уточните строку регулярного выражения, если это работает.
Пожалуйста, примите любой из полученных ответов, чтобы закрыть вопрос.