Comment puis-je synchroniser mon horloge système sous Mavericks?

22

J'ai un iMac de 27 pouces à la mi-2011 avec Mavericks (10.9.1). J'ai mis à jour Mountain Lion cet automne lorsque Mavericks est sorti. Je n'ai jamais eu de problème avec l'horloge de mon système.

Depuis l'installation de Mavericks, mon horloge gagne régulièrement environ 20 secondes par jour. J'ai correctement réglé mon fuseau horaire et "Définir la date et l'heure automatiquement" est coché dans mes préférences système Date et heure. Il est configuré pour utiliser "Apple / Americas / US (time.apple.com)"

Lorsque j'ouvre le volet Préférences système de la date et de l'heure, mon horloge est immédiatement ajustée à l'heure correcte, mais sans ouvrir le volet, elle s'éloigne assez rapidement.

J'ai redémarré, coché et décoché la case pour régler automatiquement la date et l'heure et aucun ne semble avoir aidé.

Des solutions ou des idées?


MISE À JOUR:

J'ai fait ce qui semble être un progrès. Question: Comment savoir si mon Mac maintient correctement l'horloge à jour? et sa réponse acceptée par grgarside a fourni beaucoup d'aide de dépannage utile. Ma dérive est un énorme 499,988 (gagne 43,19 secondes par jour)!

Plus important encore, le stimulateur cardiaque fonctionne toutes les 5 à 15 secondes, comme en témoigne mon journal de tige, cependant, chaque fois qu'il fonctionne, il obtient une erreur:

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

Il semble que j'ai un problème d'autorisation, mais je ne peux pas le résoudre. J'ai déchargé et rechargé le stimulateur cardiaque via launchctl

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

voici une exportation de texte de mon 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;
        };
    };
}

mon fichier /private/var/db/ntp.drift appartient à root: wheel et ses autorisations sont 644, /System/Library/LaunchDaemons/com.apple.pacemaker.plist a exactement la même propriété et les mêmes autorisations.

J'espère que cette mise à jour fournit suffisamment d'informations supplémentaires pour que quelqu'un puisse me résoudre ce problème.

Scott
la source
2
Je n'ai jamais vu le système se déclencher comme vous le décrivez, mais une autre personne ici devait sélectionner un autre serveur de temps (en Asie si vous utilisez actuellement les États-Unis), puis revenir en arrière pour que le paramètre reste fidèle.
bmike
Je suppose qu'il y a un problème avec votre DNS ou votre fichier hôte. Avez-vous modifié vos paramètres réseau et vos préférences d'une manière ou d'une autre? Pas seulement moins de 10,9 mais 10,8? J'essaierais de passer de time.apple.com à l'une des URL de pool.ntp.org/en .
Andrew U.
1
@AndrewU. Votre commentaire ne tient pas compte du fait que le temps se synchronise apparemment correctement lorsque j'ouvre le panneau des préférences
Scott
1
@bmike J'essaie, je ne suis tout simplement pas revenu sur cet iMac pour vérifier les choses. Merci, Scott
Scott
1
J'ai exactement le même problème - l'horloge dérive de quelques minutes par semaine, mais se synchronise immédiatement correctement lorsque j'ouvre le panneau des préférences d'horloge. J'ai remarqué que l'erreur "adjtime: opération non autorisée" peut être éliminée si vous exécutez pacemaker sur la ligne de commande via sudo: sudo / usr / libexec / pacemaker -v Mais ce n'est pas vraiment une solution, juste peut-être un indice de ce qui pourrait se passer mal dans les coulisses.
Brian Stormont

Réponses:

22

ceux-ci semblent fonctionner correctement sur mon iMac, exécutant Mountain Lion:

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

il vous suffit de copier / coller la ligne séparée par des espaces ci-dessus dans le champ «Définir la date et l'heure automatiquement», dans les préférences de date et d'heure. n'oubliez pas d'appuyer sur Entrée après avoir tapé les noms des serveurs ntp, afin que ntp.conf soit mis à jour.

user1082
la source
Je ne comprends pas pourquoi cela a fonctionné, mais cela a fonctionné!
Scott
Dans Yosemite, cela est devenu une liste déroulante qui ne semble pas aimer être éditée (même si on dirait que vous pouvez la modifier ...) :(
RedYeti
Vous pouvez toujours éditer dans Yosemite (je viens de le faire!). Si vous sélectionnez la liste déroulante et appuyez sur la touche Supprimer, vous verrez le texte disparaître. Vous ne pouvez pas utiliser cmd + v pour coller, mais un clic secondaire vous donne une option de collage dans le menu.
Ryan Dlugosz
3

Le ntpd de Maverisks est cassé, écrasé, corrompu. Apple le sait: je leur ai passé des heures au téléphone à leur fournir des échantillons et des fichiers à profusion. Il peut s'agir d'un report d'iOS ("Retour au Mac", que cela fonctionne ou non). Le coupable semble être une nouveauté avec le démon Maverisks appelé "pacemaker", qui, de façon classique Apple, est sous-documenté et ne semble pas se comporter conformément au peu de documentation disponible.

extérieur
la source
Il y a une longue discussion à ce sujet ici: discussions.apple.com/thread/5604114
shrx
Découvrez ChronyControl de Bryan Christianson (Bryan est également derrière WhatRoute). Cela ramène un peu de raison au chronométrage ntp en utilisant Mojave v10.14.4.
extérieur
2

Avant de faire une nouvelle installation, je vous suggère fortement d'essayer de réinitialiser votre NVRAM (RAM non volatile).

Une NVRAM (ou PRAM sur les anciens Mac PowerPC) stocke certains paramètres. C'est une sorte de mémoire comme la RAM ordinaire de votre Mac, mais avec une différence majeure étant qu'une NVRAM stocke ce qu'il contient même si votre Mac est éteint.

Plus précisément, les informations stockées dans NVRAM / PRAM comprennent:

  • Volume haut-parleur
  • Paramètres de fuseau horaire
  • Résolution d'écran
  • Sélection du disque de démarrage
  • Panique récente du noyau, le cas échéant

Probablement, ce qui est stocké sur votre NVRAM à propos de votre temps a été corrompu d'une manière ou d'une autre et provoque maintenant votre problème.

Maintenant, vous pourriez vous demander, qu'en est-il de la synchronisation du temps avec les serveurs? Pourquoi ai-je besoin de ça? Eh bien, c'est juste pour régler votre temps au lieu de le faire manuellement. Juste un petit geste; rien de plus. Une fois configuré, il est stocké sur votre NVRAM comme d'habitude.

Et votre heure est corrigée à chaque fois que vous ouvrez vos préférences de date et d'heure, car l'ouverture de ce dernier lance probablement une synchronisation manuelle de votre heure avec le serveur. Mais après cela, les choses tournent à l'envers.

Quoi qu'il en soit, afin de réinitialiser votre NVRAM:

  • Arrêtez votre Mac.
  • Localisez les touches suivantes sur le clavier: Commande (⌘) , Option , P et R . Vous devrez maintenir ces touches enfoncées simultanément à l'étape 4.
  • Allumer l'ordinateur.
  • Appuyez et maintenez les touches Commande-Option-PR avant que l'écran gris n'apparaisse.
  • Maintenez les touches enfoncées jusqu'à ce que l'ordinateur redémarre et que vous entendiez le son de démarrage pour la deuxième fois.
  • Relâchez les touches.

Source: Apple

Can Sürmeli
la source
1
Je pouvais voir la réinitialisation de la NVRAM effacer un fuseau horaire incorrect, mais en ce qui concernait le chronométrage et la capacité de ntpd à empêcher l'horloge de s'écarter des sources Internet - il y a beaucoup de liens manquants entre ce qui est stocké dans la NVRAM et la façon dont l'heure est réglée. D'autant plus que le système s'éteint et se corrige automatiquement en cours d'exécution en ouvrant le volet des préférences système. Pensez-vous que ça se gâte au démarrage peut-être?
bmike
2

Vous pouvez ntpdatevia launchd.

J'ai rassemblé les pièces sur https://github.com/tjluoma/ntp-fix-time mais j'inclurai les bits pertinents ici:

  1. Une liste launchdqui va dans / Library / LaunchDaemons / (car elle doit être exécutée comme rootlorsqu'elle s'exécute)

  2. Un script shell qui appelle ntpdate -u $NTPHOSTet enregistre sa sortie.

Pour une raison quelconque, essayer d'appeler ntpdatedirectement via launchdn'a pas fonctionné pour moi, mais l'appeler via un script semblait fonctionner.

Le plistutilise ceci:

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

pour vous assurer qu'il s'exécute au redémarrage du Mac.

Cette:

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

s'assure qu'il fonctionne toutes les 4 heures, ce qui semblait être «assez souvent».

Le script utilisera les serveurs répertoriés dans /etc/ntp.conf sauf s'il n'y en a pas, auquel cas il utilisera time.apple.com.

(La manpage pour ntpdatesuggère qu'il sera finalement `` retiré '' de Mac OS X mais il est toujours là dans 10.9.1, donc cela me suffit.)

TJ Luoma
la source
Il semble que cela fonctionnera - même si je suis perplexe quant à la raison pour laquelle cela est nécessaire et s'il existe d'autres problèmes système que je ne connais pas.
Scott
1
Pour info - je ne suis pas un fan de compter sur la variable PATH dans LaunchDaemons ou cron jobs. J'ai été brûlé trop de fois, je pense que c'est une bien meilleure pratique d'utiliser le chemin complet. Dans le cas de LaunchDaemons, vous pouvez spécifier un répertoire de travail qui, s'il est utilisé, supprime la nécessité de spécifier le chemin complet.
Scott
1

Jusqu'à présent, je n'ai pas réussi à éliminer la dérive d'horloge. Parce que mon horloge dérive lentement (moins d'une minute par jour) Il faut un certain temps pour voir si la solution tentée fonctionne.

Je viens d'essayer une variante de la réponse de Patrix de ce post . L'écho n'a pas fonctionné sur la ligne de commande, j'ai obtenu une "autorisation refusée" (sa réponse faisait référence à une installation Lion). Mais j'ai supprimé l'ancien fichier et l'ai remplacé par un nouveau que j'ai édité avec nano.

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

dans le fichier que j'ai simplement placé

server time.apple.com

pas de fuite. ou nouvelle ligne. J'ai ensuite quitté nano (ctrl-X) et répondu oui à l'enregistrement des modifications.

Je n'ai pas eu besoin de changer de propriétaire car il appartenait déjà à root: wheel.

Je mettrai à jour quand je sais si cela a fonctionné.

Scott
la source
1
Cela n'a pas fonctionné
Scott
2
Pourquoi le touchez-vous avant de le modifier?
Max Ried
0

Je voulais fournir mes deux cents sur ce problème. J'avais un problème similaire. Mon horloge aurait une heure de retard et ce qui a fonctionné pour moi, c'était de décocher automatiquement le fuseau horaire en utilisant l'emplacement actuel, et de choisir manuellement la ville la plus proche. Cela ne fait pas de mal de l'essayer et de voir si cela fait une différence.

lovesimac
la source
0

Comme cela a été discuté ailleurs, la dérive de l'horloge est due au fait que ntpd ne fonctionne pas et que quelque chose appelé / usr / libexec / pacemaker ne fonctionne pas correctement non plus. La désactivation du stimulateur cardiaque et l'exécution de ntpdate pour faire pivoter l'horloge ont rendu l'horloge raisonnablement stable sur mon système, avec un minimum de modifications du système.

Depuis Terminal, exécutez ces commandes dans l'ordre.

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

Redémarrez ensuite le système.

Les deux premières commandes désactivent le stimulateur cardiaque en éloignant son fichier de configuration launchd. Les trois dernières commandes indiquent au démon cron système d'exécuter ntpdate toutes les cinq minutes, de ralentir ou d'accélérer l'horloge si nécessaire, et de consigner ce qu'il fait dans /var/log/system.log.

Kyle Jones
la source
-2

Si vous appelez Apple, ils vous suggéreront de réinstaller en préservant le système d'exploitation.

Je suppose que vous avez une préférence corrompue. Vous pouvez essayer de changer chaque paramètre du panneau de préférences Date et heure sur autre chose, redémarrer, puis le définir comme vous le souhaitez. Si cela ne fonctionne pas, allez dans le répertoire Préférences et supprimez tout ce qui est lié à la date et à l'heure des préférences.

vy32
la source
Réinstaller? HORREURS! C'est pourquoi j'ai quitté Windows il y a des années. Des personnes intelligentes et raisonnables peuvent trouver une meilleure solution que de réinstaller un système d'exploitation.
Scott
Et pour ce qui est d'aller dans les préférences et de supprimer les listes concernant la date et l'heure. Je trouve cette recommandation incomplète et dangereuse. Si c'est sérieusement votre conseil, vous devriez A) fournir l'emplacement du dossier. Et B) conseille à l'utilisateur de déplacer les fichiers ailleurs (bureau peut-être) au lieu de les supprimer. De nombreuses personnes, de différents niveaux d'expérience, liront cette question.
Scott
Je suppose que vous n'avez pas appelé le support technique d'Apple récemment. La réinstallation d'OSX est une opération assez indolore. Toutes vos applications restent installées, tous vos utilisateurs restent présents.
vy32
J'ai appelé Apple hier. 3 heures au téléphone. Puis une réinstallation de 4 heures du système d'exploitation (sur Internet rapide sur un SSD). Puis 2 heures de peaufinage des fichiers de configuration (apache, etc.) qui ont été encombrés par la réinstallation du système d'exploitation. Et après tout cela - MON HORLOGE CONTINUE DE DÉRIVER. Pas même indolore et le problème n'est pas résolu.
Scott