Задержка системного времени повреждают logrotate операцию?

awk -F'\t' '{for(i=1;i<=NF;i++)if(!(i%3))$i=$i "\n"}1' file
4
09.04.2013, 19:29
2 ответа

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.

1
27.01.2020, 21:02
  • 1
    Спасибо за Ваш ответ Patrick. В другой встроенной системе с помощью той же платы я также синхронизирую время с NTP, таким образом, я не должен волноваться о logrotate, завинчиваемом. Проблема с этим конкретно состоит в том, что это даже не имеет соединение Ethernet в наличии. Я знаю, что удаление файла состояния просто заставляет logrotate воссоздать, в один следующий раз относясь к 1970, но интересно, перезапущено ли это снова, это не будет вращаться правильно, потому что часы добрались назад даже во время "1 970". –  Claudio 16.04.2013, 01:18
  • 2
    О, интересный, я не понял, что это было без сетевого соединения. Еще более сложный. –  Patrick 19.04.2013, 06:11
  • 3
    Вы смогли помогать ситуации периодически (каждый час?) запись текущих часов к Вашему диску (флэш-память?), и на начальной загрузке, восстанавливающей часы к тому состоянию - таким образом, Вы будете обоснованно в синхронизации через начальные загрузки. –  Patrick 19.04.2013, 06:17

обходной путь путем вставки

sed -i '/1970-1/d' /var/lib/logrotate.status

в скрипт logrotate /etc/cron.daily/logrotate

0
27.01.2020, 21:02

Теги

Похожие вопросы