10.14 Mojave
Mojave utilise toujours timed
, mais ntpdate
et les assistants ntpq
sont supprimés. Pour vérifier et mettre à jour l'heure de votre système, vous pouvez appeler sntp
directement.
$ sudo sntp -sS pool.ntp.org
Password:
sntp [email protected] Tue Mar 21 14:36:42 UTC 2017 (136.200.1~2533)
2018-09-29 19:42:41.448103 (-0200) +1087.742403 +/- 725.183462 pool.ntp.org 188.68.36.203 s2 no-leap
Hors de la boîte, un fichier de suivi est manquant, donc si vous obtenez cette erreur inoffensive lors de la vérification de l'heure:
kod_init_kod_db(): Cannot open KoD db file /var/db/ntp-kod: No such file or directory
ignorez l'erreur ou essayez de créer ce fichier vide:
sudo touch /var/db/ntp-kod
sudo chmod 666 /var/db/ntp-kod
10.13 High Sierra
High Sierra utilise timed
, depuis /usr/libexec/timed
, géré par l'utilisateur du système _timed
.
timed maintient la précision de l'horloge du système en synchronisant l'horloge avec les horloges de référence via des technologies comme NTP. Les entrées sont fusionnées à l'intérieur de temporisé, où il calcule l'incertitude pour faciliter la planification des tâches horaires proactives. timed est également au courant des conditions d'alimentation / de la batterie.
timed est géré par LaunchDaemon /System/Library/LaunchDaemons/com.apple.timed.plist
. courses chronométrées…
- lorsque le démon est chargé au démarrage (RunAtLoad: true)
- toutes les 3600 secondes (StartInterval: 3600)
- lorsque le mode avion est désactivé (mode avion com.apple.systemconfiguration modifié: com.apple.radios.plist AirplaneMode false, qui semble être transféré depuis iOS)
Vous pouvez voir l'état de votre horloge en regardant le contenu de /var/db/timed/com.apple.timed.plist
, sous le dictionnaire TMLastSystemTime dans la clé TMTimeError et la clé TMScaleFactorError.
$ sudo defaults read /var/db/timed/com.apple.timed TMLastSystemTime
{
TMCurrentTime = "537303485.281592";
TMReliability = 1;
TMRtcTime = "351422.381868388";
TMScaleFactor = "0.9999958233107684";
TMScaleFactorError = "3.468751755688052e-05";
TMSource = TMTimeSynthesizer;
TMTimeError = "0.6127951619022057";
}
timed utilise le serveur de temps défini dans /etc/ntp.conf
, qui est par défaut
server time.apple.com
timed utilise également TMTimeSynthesizer, quelque chose que CoreTime sur iOS utilise pour mettre à jour l'horloge, mais je ne connais pas son historique sur macOS:
Ne lancez pas vous-même le binaire chronométré, comme mentionné dans la page de manuel:
timed ne prend aucun argument et les utilisateurs ne doivent pas le lancer manuellement.
Selon l'utilisateur des forums des développeurs Apple granada29 dans le post ntpd, timed et chronyd en 10.13 , timed effectue les opérations suivantes:
timed semble être un simple client sntp - c'est-à-dire qu'il interroge le NTP périodiquement (15 minutes) et utilise l'appel système settimeofday () pour régler l'horloge du système. Je suppose qu'il a une certaine intelligence pour éviter de reculer, mais il n'y a aucun moyen de le savoir.
10.11 El Capitan à 10.12 Sierra
pacemaker
est le démon responsable de la gestion de l'heure sous macOS. Il permet adjtime
d'ajuster l'horloge en fonction du contenu de /var/db/ntp.drift
.
Vous pouvez voir à quel point votre horloge est éteinte en regardant le contenu de ntp.drift
- par exemple, mon fichier contient les éléments suivants:
-23.640
Cela signifie que l'horloge est à -23,64 PPM de l'heure qu'elle devrait être. Les unités de ce nombre sont PPM ou Parts Per Million. 1 PPM correspond à 1 microseconde / seconde ou 3,6 ms / h.
Vous pouvez effectuer la mise à jour de l'horloge plus souvent en exécutant pacemaker
l' -a
option, en fournissant un temps d'attente en secondes entre les mouvements de temps:
/usr/libexec/pacemaker -a 10
Pour voir les paramètres utilisés par OS X pour stimulateur cardiaque, ouvrez /System/Library/LaunchDaemons/com.apple.pacemaker.plist
.
{
KeepAlive = { PathState = { "/private/var/db/ntp.drift" = :true; }; };
Label = "com.apple.pacemaker";
ProgramArguments = ( "/usr/libexec/pacemaker", "-b", "-e", "0.0001", "-a", "10" );
}
Pour trouver vos paramètres actuels, exécutez l' -i
option:
/usr/libexec/pacemaker -i
Jan 19 18:20:08 g pacemaker[12544] <Info>: --- settings for external power ---
Jan 19 18:20:08 g pacemaker[12544] <Info>: interval = 1 seconds, tolerance = 0.000000, drift = -23.640000
Jan 19 18:20:08 g pacemaker[12544] <Info>: --- settings for internal power ---
Jan 19 18:20:08 g pacemaker[12544] <Info>: interval = 1 seconds, tolerance = 0.000024, drift = -23.640000
Vous pouvez afficher le journal en exécutant avec l' -v
option:
sudo /usr/libexec/pacemaker -v
Password:
Jan 19 18:23:17 g pacemaker[13202] <Info>: power status check: using external power
Jan 19 18:23:17 g pacemaker[13202] <Info>: created file monitor for /var/db/ntp.drift
Jan 19 18:23:17 g pacemaker[13202] <Info>: interval = 1 seconds, tolerance = 0.000000, drift = -23.640000
Jan 19 18:23:19 g pacemaker[13202] <Debug>: drift -23.640000 residue 0.000000 delta -23
Jan 19 18:23:20 g pacemaker[13202] <Debug>: drift -23.640000 residue -0.640000 delta -24
Jan 19 18:23:21 g pacemaker[13202] <Debug>: drift -23.640000 residue -0.280000 delta -23
Jan 19 18:23:22 g pacemaker[13202] <Debug>: drift -23.640000 residue -0.920000 delta -24
Jan 19 18:23:23 g pacemaker[13202] <Debug>: drift -23.640000 residue -0.560000 delta -24
Jan 19 18:23:24 g pacemaker[13202] <Debug>: drift -23.640000 residue -0.200000 delta -23
⌃C%
sntp
fonctionnait. Je me demande si l'/var/db/ntp-kod
erreur cause des problèmes avec la synchronisation automatique - j'essaierai de la créer et reviendra dans quelques mois. =)Cette réponse ne s'applique qu'à 10.12 Sierra et inférieur.
Les détails peuvent être utiles pour référence, mais une autre réponse couvre parfaitement les nouveaux détails de chronométrage macOS.
La première étape consiste à voir si votre temps est configuré.
En supposant que vous avez des valeurs de délai / décalage / gigue inférieures à 100 (le délai peut être inférieur à 1000 dans des situations normales pour des systèmes critiques moins précis), la prochaine commande à exécuter dans le terminal est
ntpq
suivie par le serveur de temps de votrentpq
préférence système et. Vous pouvez également tester d'autres serveurs de temps pour voir s'ils ont des retards inférieurs car le système de chronométrage aime avoir une réponse rapide et proche des serveurs de temps lors de la correction de l'heure pour les différences de millisecondes et du calcul de la façon dont l'horloge matérielle actuelle s'éloigne de l'heure standard .La prochaine chose à vérifier est votre programme de stimulateur cardiaque:
Cela montre que sur batterie, l'intervalle de réglage n'est pas supérieur à une fois toutes les 10 secondes et s'ajuste encore moins si l'erreur d'horloge est inférieure à 0,1 milliseconde.
Si vous constatez que votre décalage est de quelques secondes ou plus, vous souhaiterez peut-être modifier les serveurs de temps que vous utilisez ou peut-être modifier les valeurs utilisées sur le stimulateur cardiaque pour utiliser plus d'énergie et de CPU, mais avoir une horloge plus proche de l'heure réelle en échange des paramètres qu'Apple a livré avec 10.9.
la source
Si vous allez sur http://time.gov, vous pouvez voir l'heure officielle (jusqu'à la seconde) et l'utiliser pour vérifier si l'heure de votre système est correcte ou non. Notez qu'il s'agit de l'heure officielle du NIST et effectue sa propre synchronisation dans le navigateur, indépendamment de l'heure du système (à titre d'exemple, vous pouvez voir ici que time.gov gère les secondes intercalaires, contrairement à OS X, apparemment).
la source
À partir de High Sierra, le démon système ntpd a été remplacé par le démon système temporisé qui appelle / usr / libexec / timed.
Le meilleur exécutable que j'ai trouvé pour obtenir des détails est
systemsetup
(exécuté en tant que root) avec ses différents drapeaux:La sortie résultante est de loin moins verbeuse (= ennuyeuse). Par exemple, aucun détail ∂T / dérive.
Apparemment, la temporisation utilise un seul serveur ntp (le premier répertorié - vérifié avec WireShark / LittleSnitch) même si plusieurs sont entrés dans le fichier préférences système / ntp.conf.
Lectures complémentaires (pas très techniques): Quelqu'un a-t-il le temps? Comment High Sierra a changé la synchronisation de l'heure
Un démon ntpd hérité est toujours présent mais déchargé. Il peut être chargé cependant en entrant dans Terminal.app:
en mode SIP désactivé. La saisie
ntpq -p
fonctionnera alors à nouveau.Pour charger le démon en mode activé SIP, copiez le fichier dans / Library / LaunchDaemons /:
Modifiez le libellé du plist avec nano ou un autre éditeur de org.ntp.ntpd-legacy à org.ntp.ntpd:
Chargez le démon:
Si je trouve un meilleur exécutable pour obtenir les détails de l'heure avec le démon High Sierra par défaut, la réponse sera mise à jour.
la source
Pour obtenir une réponse fiable sur la façon dont votre horloge est réglée, exécutez ntpdate en mode débogage:
Cela tournera pendant un certain temps et se terminera par une ligne telle que
Dans ce cas, cela signifiait que mon horloge locale était éteinte d'environ 810 µs (ce qui serait spectaculaire, si en fait vrai, mais la valeur bien en dessous de 100 ms indique une synchronisation de travail).
la source
Pour vérifier la synchronisation d'horloge, similaire à la réponse qui suggère de s'exécuter
ntpdate
en mode débogage, vous pouvez également l'exécuter en mode requête pour une sortie moins détaillée.Cela vient de mon Mac exécutant High Sierra 10.13.2, qui fonctionne
timed
plutôt que le démon NTP (ntpdate
fonctionne toujours car il n'utilise pas le démon NTP).la source