Как я могу синхронизировать свои системные часы под Mavericks?

22

У меня в середине 2011 года 27-дюймовый iMac под управлением Mavericks (10.9.1). Я обновился с Mountain Lion этой осенью, когда был выпущен Mavericks. У меня никогда не было проблем с системными часами.

С момента установки Mavericks мои часы стабильно набирают около 20 секунд в день. У меня правильно установлен часовой пояс, и в настройках системы «Дата и время» установлен флажок «Автоматически устанавливать дату и время». Он настроен на использование «Apple / Americas / US (time.apple.com)»

Когда я открываю панель «Системные настройки даты и времени», мои часы сразу же настраиваются на правильное время, но, не открывая панель, они довольно быстро сбиваются с пути.

Я перезагрузил, проверил и снял флажок, чтобы установить дату и время автоматически, и ни один, кажется, не помог.

Любые решения или идеи?


ОБНОВИТЬ:

Я сделал то, что похоже на прогресс. Вопрос: Как я могу узнать, правильно ли обновляет часы мой Mac? и его принятый grgarside ответ предоставил много полезной помощи по устранению неполадок. Мой дрейф колоссальный 499,988 (набирает 43,19 секунд в день)!

Самое главное, что кардиостимулятор работает каждые 5 - 15 секунд, о чем свидетельствует мой стволовой журнал, однако каждый раз, когда он запускается, он выдает ошибку:

Feb  1 11:53:29 jsw.local pacemaker[19928]: adjtime: Operation not permitted
Feb  1 11:53:39 jsw.local pacemaker[19928]: adjtime: Operation not permitted
Feb  1 11:53:51 jsw.local pacemaker[19928]: adjtime: Operation not permitted
Feb  1 11:53:59 jsw.local pacemaker[19928]: adjtime: Operation not permitted
Feb  1 11:54:09 jsw.local pacemaker[19928]: adjtime: Operation not permitted
Feb  1 11:54:19 jsw.local pacemaker[19928]: adjtime: Operation not permitted

Кажется, у меня проблема с разрешением, но я не могу ее решить. Я выгрузил и перезарядил кардиостимулятор plsit через launchctl

sudo launchctl unload /System/Library/LaunchDaemons/com.apple.pacemaker.plist
sudo launchctl load /System/Library/LaunchDaemons/com.apple.pacemaker.plist

вот текстовый экспорт моего com.apple.pacemaker.plist

{
    Label = "com.apple.pacemaker";
    ProgramArguments = (
        "/usr/libexec/pacemaker",
        "-b",
        "-e",
        "0.0001",
        "-a",
        10,
    );
    KeepAlive = {
        PathState = {
            "/private/var/db/ntp.drift" = YES;
        };
    };
}

Мой /private/var/db/ntp.drift файл принадлежит root: wheel и имеет разрешения 644, /System/Library/LaunchDaemons/com.apple.pacemaker.plist имеет точно такие же права и владельца.

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

Скотт
источник
2
У меня никогда не было выключения системы, как вы описали, но другому человеку здесь нужно было выбрать другой сервер времени (в Азии, если вы в настоящее время используете США), а затем переключиться обратно, чтобы настройки остались прежними.
bmike
Я думаю, что с вашим DNS или хост-файлом что-то не так. Вы каким-либо образом изменили настройки и настройки сети? Не чуть меньше 10,9, а 10,8? Я бы попробовал перейти с time.apple.com на один из URL-адресов pool.ntp.org/en .
Эндрю У.
1
@AndrewU. Ваш комментарий не учитывает тот факт, что время, по-видимому, синхронизируется должным образом, когда я открываю предварительную панель
Скотт
1
@bmike Я пытаюсь это сделать, просто еще не вернулся к тому iMac, чтобы все проверить. Спасибо, Скотт
Скотт
1
У меня точно такая же проблема - часы смещаются по минутам в неделю, но сразу же синхронизируются должным образом, когда я открываю панель настроек часов. Я заметил, что ошибка «adjtime: Operation not позволена» может быть устранена, если вы запускаете кардиостимулятор в командной строке с помощью sudo: sudo / usr / libexec / pacemaker -v Но это не совсем решение, возможно, намек на то, что может произойти неправильно за кадром.
Брайан Стормонт

Ответы:

22

это , кажется, работает нормально на моем компьютере, работает Mountain Lion:

0.pool.ntp.org 1.pool.ntp.org 2.pool.ntp.org 3.pool.ntp.org time.apple.com

просто скопируйте / вставьте разделенную пробелами строку выше в поле «Автоматически устанавливать дату и время» в настройках «Дата и время». не забудьте нажать Enter после ввода имен серверов ntp, чтобы ntp.conf обновлялся.

user1082
источник
Я не понимаю, почему это сработало, но сработало!
Скотт
В Yosemite это стало выпадающим списком, который, похоже, не нравится редактировать (даже если он вроде как выглядит, как будто вы можете его редактировать ...) :(
RedYeti
Вы все еще можете редактировать в Yosemite (я только что сделал!). Если вы выберете выпадающий список и нажмете клавишу Delete, текст исчезнет. Вы не можете использовать cmd + v для вставки, но вторичный щелчок дает вам возможность вставки в меню.
Райан Длугош
3

Maverisks 'ntpd сломан, разбит, испорчен. Apple знает об этом: я часами разговаривал с ними по телефону, предоставляя им образцы и файлы в изобилии. Это может быть перенос с iOS («Вернуться к Mac», работает ли он на самом деле). Виновником, похоже, является новый демон Maverisks под названием «кардиостимулятор», который в классической моде Apple недостаточно документирован и, по-видимому, не ведет себя в соответствии с тем, что есть небольшая документация.

внешний
источник
Существует lenghty обсуждение об этом здесь: discussions.apple.com/thread/5604114
shrx
Проверьте ChronyControl Брайана Кристиансона (Брайан также стоит за WhatRoute). Это возвращает здравомыслие к хронометражу ntp с помощью Mojave v10.14.4.
внешняя
2

Перед новой установкой настоятельно советую попробовать сбросить NVRAM (энергонезависимую оперативную память).

NVRAM (или PRAM на старых Mac с PowerPC) хранит определенные настройки. Это своего рода память, похожая на обычную оперативную память на вашем Mac, но главное отличие в том, что NVRAM хранит то, что на ней, даже если ваш Mac выключен.

В частности, информация, хранящаяся в NVRAM / PRAM, включает в себя:

  • Громкость динамика
  • Настройки часового пояса
  • Разрешение экрана
  • Выбор загрузочного диска
  • Недавняя паника ядра, если есть

Вероятно, то, что хранится на вашем NVRAM о вашем времени, каким-то образом испортилось и теперь вызывает вашу проблему.

Теперь вы можете спросить, а как насчет синхронизации времени с серверами? Для чего мне это нужно? Ну, это просто для установки вашего времени вместо того, чтобы делать это вручную. Просто маленький жест; больше ничего. После того, как он будет установлен, он будет сохранен на вашем NVRAM как обычно.

И ваше время корректируется каждый раз, когда вы открываете свои настройки даты и времени, потому что, вероятно, открытие там инициирует ручную синхронизацию вашего времени с сервером. Но после этого дела снова пошли вразнос.

В любом случае, чтобы сбросить NVRAM:

  • Выключи свой Mac.
  • Найдите следующие клавиши на клавиатуре: Command (⌘) , Option , P и R . Вам нужно будет одновременно удерживать эти клавиши в шаге 4.
  • Включить компьютер.
  • Нажмите и удерживайте клавиши Command-Option-PR до появления серого экрана.
  • Удерживайте клавиши, пока компьютер не перезагрузится, и вы не услышите звук запуска во второй раз.
  • Отпустите ключи.

Источник: Apple

Кан Сюрмели
источник
1
Я мог видеть, как сброс NVRAM очищает неправильный часовой пояс, но поскольку он влияет на хронометраж и способность ntpd не давать часам расходиться от интернет-источников - существует много недостающих ссылок между тем, что хранится в NVRAM, и тем, как установлено время. Тем более что система отключается и самокорректируется во время работы, открывая панель системных настроек. Вы думаете, что это запуталось во время загрузки, возможно?
bmike
2

Вы можете ntpdateчерез launchd.

Я собрал кусочки по адресу https://github.com/tjluoma/ntp-fix-time, но я включу соответствующие биты здесь:

  1. launchdPLIST , который входит в / Library / LaunchDaemons / (потому что он должен быть запущен , rootкогда он работает)

  2. Сценарий оболочки, который вызывает ntpdate -u $NTPHOSTи записывает свой вывод.

По какой-то причине, попытка вызова ntpdateнапрямую через launchdменя не сработала, но вызов через скрипт, похоже, работал.

plistИспользует это:

    <key>RunAtLoad</key>
    <true/>

чтобы убедиться, что он работает при перезагрузке Mac.

Это:

    <key>StartInterval</key>
    <integer>14400</integer>

следит за тем, чтобы он запускался каждые 4 часа, что казалось «достаточно часто».

Сценарий будет использовать серверы, перечисленные в /etc/ntp.conf, если их нет, и в этом случае он будет использовать time.apple.com.

( manСтраница для ntpdateпредполагает, что в конечном итоге он будет «удален» из Mac OS X, но он все еще есть в 10.9.1, так что мне этого достаточно.)

Ти Джей Луома
источник
Похоже, это будет работать - хотя я озадачен, почему это необходимо, и если есть другие системные проблемы, о которых я не знаю.
Скотт
1
К вашему сведению - я не фанат полагаться на переменную PATH в заданиях LaunchDaemons или cron. Меня слишком много раз сжигали, и я считаю, что гораздо лучше использовать полный путь. В случае LaunchDaemons вы можете указать WorkingDirectory, который, если используется, устраняет необходимость указывать полный путь.
Скотт
1

До сих пор мне не удавалось устранить дрейф часов. Потому что мои часы дрейфуют медленно (менее минуты в день) Требуется время, чтобы увидеть, работает ли попытка решения.

Я только что попробовал вариант ответа Патрикс из этого поста . Эхо не работало в командной строке, я получил «разрешение запрещено» (его ответ был связан с установкой Lion). Но я удалил старый файл и заменил его новым, который я отредактировал с помощью nano.

sudo rm /etc/ntp.conf
sudo touch /etc/ntp.conf
sudo nano /etc/ntp.conf

в файле я просто поместил

server time.apple.com

нет отставания. или новая строка. Затем я вышел из nano (ctrl-X) и ответил «да» на сохранение изменений.

Мне не нужно было менять владельцев, поскольку он уже принадлежал root: wheel.

Я обновлю, когда узнаю, сработало ли это.

Скотт
источник
1
Это не сработало
Скотт
2
Почему вы касаетесь его, прежде чем изменить?
Макс Райд
0

Я хотел предоставить свои два цента по этой проблеме. У меня была аналогичная проблема. Мои часы отстали бы на час, и для меня сработало автоматическое отключение «Установить часовой пояс» с использованием текущего местоположения и просто выбор ближайшего города вручную. Это не больно, чтобы попробовать и посмотреть, если это имеет значение.

lovesimac
источник
0

Как уже говорилось в другом месте, смещение часов происходит из-за того, что ntpd не работает и что-то, называемое / usr / libexec / pacemaker, также не работает правильно. Отключение кардиостимулятора и запуск ntpdate для поворота часов сделали часы достаточно стабильными в моей системе с минимальными изменениями системы.

Из терминала запустите эти команды по порядку.

cd /System/Library/LaunchDaemons/
mv com.apple.pacemaker.plist com.apple.pacemaker.plist.OFF
sudo crontab -l > /tmp/foo
echo '*/5 * * * * /usr/sbin/ntpdate -s -B -u time.apple.com' >> /tmp/foo
sudo crontab /tmp/foo

Затем перезагрузите систему.

Первые две команды отключают кардиостимулятор, удаляя его конфигурационный файл launchd. Последние три команды говорят системному демону cron запускать ntpdate каждые пять минут, замедляя или ускоряя время по мере необходимости, и записывая, что он делает, в /var/log/system.log.

Кайл Джонс
источник
-2

Если вы позвоните в Apple, вам предложат выполнить переустановку с сохранением операционной системы.

Я думаю, что у вас есть испорченные предпочтения. Вы можете попробовать изменить каждый параметр на панели настроек «Дата и время» на что-то другое, перезагрузиться, а затем установить то, что вам нужно. Если это не сработает, перейдите в каталог настроек и удалите все, что связано с настройками даты и времени.

vy32
источник
Переустановка? УЖАСЫ! Вот почему я покинул Windows много лет назад. Разумеется, разумные люди могут найти лучшее решение, чем переустановка ОС.
Скотт
А что касается перехода в раздел «Настройки» и удаления списков, связанных с датой и временем. Я считаю эту рекомендацию неполной и опасной. Если это действительно ваш совет, вы должны А) указать местоположение папки. И Б) советовать пользователю перемещать файлы в другое место (возможно, на рабочем столе) вместо того, чтобы удалять их. Многие люди с разным уровнем опыта прочитают этот вопрос.
Скотт
Я понимаю, что вы не звонили в техподдержку Apple в последнее время. Переустановка OSX - довольно безболезненная операция. Все ваши приложения остаются установленными, все ваши пользователи остаются присутствующими.
vy32
Называется Apple вчера. 3 часа по телефону. Затем 4 часа переустановки ОС (через быстрый интернет на SSD). Затем 2 часа настройки файлов конфигурации (apache и т. Д.), Которые были забиты переустановкой ОС. И после всего этого - МОИ ЧАСЫ ВСЕ ЕЩЕ ДРИФТЫ. Даже близко безболезненно и проблема не устранена.
Скотт