logrotate файл состояния используется для отслеживания то, когда ежедневный журнал был в последний раз повернут. Это, кажется, готово записать поддельную дату как 1970 или 1907 в случае одной моей встроенной системы. Однако, когда это - следующий запуск, это отклоняет дату в своем собственном файле состояния и не поворачивает журналы.
Я работал вокруг этого, просто удалив файл состояния. Это означает, что, когда logrotate является следующим запуском, он предположит, что не должен поворачивать журналы в течение другого дня, который меня устраивает.
Лучшее решение состояло бы в том, чтобы изменить logrotate сценарий крона, чтобы сначала проверить, что часы синхронизируются с ntpq / ntpdate. На самом деле самый легкий способ, которым я могу думать для вмещения этого в сценарий, состоит в том, чтобы использовать check_ntp_time
в стандартном распределении nagios-плагинов, как /usr/lib/nagios/plugins/check_ntp_time -H pool.ntp.org
Затем просто проверьте, что код возврата 0 прежде, чем позволить logrotate работать.
Вы могли также поместить вызов в ntpdate в Вашем logrotate сценарии крона, или в Ваших сценариях запуска.
Вдобавок к этому удостоверьтесь, что крон настраивается для отправки, Вы посылаете по электронной почте, когда задания крона перестали работать; самый легкий способ сделать это возможным состоит в том, чтобы установить ssmtp
.
обходной путь путем вставки
sed -i '/1970-1/d' /var/lib/logrotate.status
в скрипт logrotate /etc/cron.daily/logrotate