NTPDate работает три раза при начальной загрузке, приводящей к неправильной дате

Строка

FILE=$(basename "${1/%.jpeg/.jpg}")

может быть сокращен и сделан более портативным с

FILE=$(basename "${1%.jpeg}.jpg")
2
18.11.2011, 00:07
2 ответа

Я нашел решение на этом веб-сайте. NTPdate пытался обновить дату каждый раз, когда интерфейс повысился, который в моем случае был три раза во время процесса начальной загрузки. Таким образом, я изменил /etc/network/if-up.d/ntpdate только работать ntpdate если eth0 повышается путем добавления следующего к верхней части сценария:

# Only update the date if eth0 goes up.
if [ "$IFACE" != eth0 ]; then
    exit 0
fi
3
27.01.2020, 21:53
  • 1
    Существует, вероятно, что-то еще, что необходимо зафиксировать. Создание нескольких ntpdate запросы должны быть безопасными. Безумно большое смещение, которое Вы видите (67 с лишним лет, приблизительно 71,5 дня за исключением 2 ³ ¹ секунды) не нормально. –  Gilles 'SO- stop being evil' 18.11.2011, 03:14
  • 2
    Когда ntpdate не удается работать вообще (обычно, если я повредил сценарий где-нибудь), системные значения по умолчанию до января 1944, таким образом, звуки смещения о праве. Я не уверен, что еще я должен зафиксировать, но это хорошо работает теперь. –  DanielGibbs 18.11.2011, 03:20
  • 3
    Как @Gilles сказанным, несколько запросов ntpdate должны быть безопасными. Ntpdate должен создавать файл блокировки, который предотвращает параллельные выполнения. Если Вы видите, что проблемы от нескольких ntpdate работают из-за Ваших различных индексов, подходящих в быстрой последовательности, то, возможно, существует своего рода состояние состязания, которое является ошибкой, о которой нужно сообщить. Я скептичен, хотя о том, является ли проблема, поскольку Вы описываете ее. –  mc0e 28.12.2014, 19:31

[очень поздний ответ, но добавлен для других, которые могут последовать]

, ограничение того, для каких интерфейсов вы запускаете ntpdate, может быть полезным, но звучит так, как будто ваша главная проблема - это отсутствие функционирующего аппаратного обеспечения часов реального времени, отсюда и огромное начальное смещение.

Я предлагаю вам заглянуть в пакет fake_hwclock. Из описания пакета :

Пакет: fake-hwclock (0.5)

Save/ restore system clock on machines without working RTC hardware

Некоторые машины не имеют работающего аппаратного обеспечения часов реального времени (RTC), или нет драйвера для существующего аппаратного обеспечения. fake-hwclock - это простой набор скриптов для периодического сохранения текущих часов ядра (в том числе и при выключении) и их восстановления при загрузке так, чтобы системные часы находились, по крайней мере, близко к реальному времени. Это остановит некоторые проблемы, которые могут быть вызваны системой, считающей, что она путешествовала в далеком 1970 году, например, необходимость выполнять проверку файловой системы при каждой загрузке.

Кроме того, рекомендуется использовать NTP для борьбы с "дрейфом" фальшивых часов во время остановки или перезагрузки оборудования.

4
27.01.2020, 21:53

Теги

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