У меня есть следующее в / var / log / syslog со вчерашнего дня (30 июля)
Dec 16 22:54:05 omap ntpdate[432]: step time server 91.189.94.4 offset 12052648.821465 sec
ntpdate 91.189.94.4 "поправил" мои часы с 30 июля по 16 декабря! В соответствии с http://www.pool.ntp.org/scores/91.189.94.4, этот сервер отключился не более чем на 2 мс.
Теперь у меня есть сценарий, который вызывает date
при загрузке системы, чтобы установить часы с точностью ~ 1 с. Грубое время считывается из локальной сети, и date
вызывается для установки времени. Я должен сделать что-то в этом направлении, поскольку в системе нет часов реального времени, а подключение к Интернету может быть недоступно для NTP.
Я не уверен, как Linux определяет начальное время, когда нет доступных часов, но я заметил, что это может быть очень неправильно (что разумно). Моя единственная мысль о том, что произошло:
ntpdate
начал разговаривать с NTP-сервером, определяя, насколько 15 марта неправильно по сравнению с реальной датойntpdate
определили, что часы отстают на 12052648 с, и добавили поправку, предполагая, что часы все еще были на 15 мартаЧестно говоря, я не слишком знаком с принципом работы NTP. Разумно ли вышесказанное? Может быть другое объяснение?
Я не уверен, как ваши часы оказались в том состоянии, в котором они находятся, но могу ли я предложить вам удалить сценарий, который вызывает date
команда, если возможно?
Обычный метод установки системных часов при запуске в большинстве систем, с которыми я работал:
ntpd
с -g
для синхронизации часов. -g
это новая опция, которая позволяет ntpd сдвигать часы до любой время - Если ваша версия ntpd
не поддерживает этот fkag, который вы бы запустили ntpdate -b some.time.server
до того, как вы запустили демон NTP
Если ваша система настолько старая, что делает что-то совершенно иное, чем эта, она, вероятно, также настолько старая, что не поддерживается, поэтому я бы без колебаний изменил сценарии запуска, чтобы они были более разумными ...
Не зная больше о своей установке, ваша теория кажется правдоподобной.
Вы захотите изменить свои сценарии запуска, чтобы убедиться, что ваш date
команда, которая устанавливает системную дату, завершена до ntpdate
начинается.
Почему вы не используете ntpd?
ntpd гораздо более эффективен для проверки правильности ваших часов, чем ntpdate, потому что он буферизует обновление на более мелкие изменения, чтобы избежать какого-либо шока для системы.
И это определенно не переводит ваши часы на другой месяц случайно!
Я бы дал более точные инструкции по установке и включению ntpd в вашей системе, но вы не указали свой дистрибутив.