Как я могу заставить OS X обновлять свое время более регулярно?

У нас есть сервер сборки Mac mini, работающий под управлением 10.9.5, и иногда сборка завершается сбоем по команде codesign, которая не выполняется из-за метки времени в одном из файлов. Обычно мы «исправляем» это, просто заходя на сервер сборки и обновляя время (либо графически, щелкнув часы, либо в командной строке), после чего следующая сборка будет успешной.

В настройках установлен флажок «Установить дату и время автоматически», а сервер времени — Apple Europe (time.euro.apple.com). Машина всегда включена, но обычно никто не подключается к ней в течение нескольких дней/недель (обычно когда что-то идет не так).

Это немного утомительно и тратит время. Есть ли способ заставить Mac OS более регулярно синхронизироваться с сервером времени? Я мог бы попробовать запускать crontab каждый час, чтобы принудительно синхронизировать время, но мне интересно, есть ли что-то более очевидное, что я упускаю?

Не совсем, потому что ntpd не работает, проверяя по обычному расписанию. Сколько серверов времени у вас настроено? Этот аналогичный вопрос предполагает, что иногда может помочь добавление большего количества; там также есть некоторые другие советы по устранению неполадок.
Но это на самом деле не объясняет, почему, когда я нажимаю на часы, чтобы открыть настройки, они обновляются правильно. Как указано в связанном вопросе, это похоже на ошибку в OS X. Я попробую добавить 5 серверов и посмотреть, сохраняется ли проблема...

Ответы (1)

Вы можете определить минимальное и максимальное время опроса в /etc/ntp.conf. Обычно время опроса автоматически настраивается ntpd в зависимости от некоторых сложных алгоритмов.

Время minpoll и maxpoll по умолчанию (без указания minpoll/maxpoll в ntp.conf) должно быть 6 (64 с) и 10 (1024 с). Добавляя записи и значения minpoll/maxpoll в ntp.conf, вы можете форсировать различные последовательности обновления. Значения представляют собой секунды как степень двойки, а допустимые целые значения — [3...17]. Тогда минимальное время опроса составляет 8 секунд, а максимальное время опроса — 36,4 часа. Вы должны перезагрузить систему или принудительно выйти из ntpd с помощью kill ...терминала или монитора активности после изменения файла конфигурации, чтобы изменения вступили в силу. Демон ntp будет перезапущен автоматически после его уничтожения.

Вот уже модифицированный пример ntp.conf со временем опроса от 1024 до 4096 секунд:

...
server 160.45.10.8 minpoll 10 maxpoll 12
server 192.53.103.104 minpoll 10 maxpoll 12
server de.pool.ntp.org minpoll 10 maxpoll 12

Скриншот ntp-трафика после изменения файла конфигурации по умолчанию без minpoll/maxpoll на приведенный выше пример 16 минут назад и возврата его еще через 12 минут в исходное состояние:

введите описание изображения здесь

Время опроса по умолчанию, равное 6, хорошо видно на приведенном выше снимке экрана с последовательностью обновления ок. 1 минута в первые 14 минут и последние 4 минуты.

Использование меньшего времени опроса [3..5] (= 8 секунд до 32 секунд) не обязательно означает, что время будет более точным! Из-за расширенных вычислений, выполняемых ntpd, настройки времени могут колебаться, и результаты могут быть более неточными, чем при более высоких временах опроса (≥6).


После обновления/обновления системы вам, возможно, придется перенастроить/восстановить измененный файл конфигурации!

Просто снова произошел сбой, время сервера сместилось примерно на 3 минуты в течение месяца ... Я мог бы попробовать обновить до 10.11, поскольку, по-видимому, там это исправлено.