10.14 Mojave
Mojave todavía usa timed
, pero ntpdate
y los ayudantes ntpq
se eliminan. Para verificar y actualizar la hora de su sistema, puede llamar sntp
directamente.
$ 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
Fuera de la caja, falta un archivo de seguimiento, por lo que si obtiene este error inofensivo al verificar el tiempo:
kod_init_kod_db(): Cannot open KoD db file /var/db/ntp-kod: No such file or directory
ignore el error o intente crear ese archivo vacío:
sudo touch /var/db/ntp-kod
sudo chmod 666 /var/db/ntp-kod
10.13 Sierra alta
High Sierra utiliza timed
, desde /usr/libexec/timed
, ejecutado por el usuario del sistema _timed
.
timed mantiene la precisión del reloj del sistema sincronizando el reloj con relojes de referencia a través de tecnologías como NTP. Las entradas se fusionan dentro del tiempo programado, donde calcula la incertidumbre para facilitar la programación de trabajos de tiempo proactivo. temporizado también es consciente de las condiciones de alimentación / batería.
cronometrado es administrado por LaunchDaemon /System/Library/LaunchDaemons/com.apple.timed.plist
. carreras cronometradas ...
- cuando el demonio se carga en el arranque (RunAtLoad: true)
- cada 3600 segundos (StartInterval: 3600)
- cuando el Modo avión está deshabilitado (el modo avión com.apple.systemconfiguration cambió: com.apple.radios.plist AirplaneMode false, que parece ser transferido desde iOS)
Puede ver qué tan "apagado" está su reloj mirando el contenido de /var/db/timed/com.apple.timed.plist
, debajo del diccionario TMLastSystemTime en la clave TMTimeError y la clave 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";
}
temporizado utiliza el servidor de tiempo configurado /etc/ntp.conf
, que de forma predeterminada es
server time.apple.com
timed también usa TMTimeSynthesizer, algo que CoreTime en iOS usa para actualizar el reloj, pero no conozco su historial en macOS:
No ejecute el binario temporizado usted mismo, como se menciona en la página del manual:
temporizado no requiere argumentos, y los usuarios no deben iniciarlo manualmente.
De acuerdo con el usuario de los Foros de Desarrolladores de Apple granada29 en el post ntpd, cronometrado y cronyd en 10.13 , cronometrado realiza lo siguiente:
timed parece ser un simple cliente sntp, es decir, sondea el NTP periódicamente (15 minutos) y utiliza la llamada al sistema settimeofday () para configurar el reloj del sistema. Supongo que tiene cierta inteligencia para evitar retroceder el reloj, pero no hay forma de saberlo.
10.11 El Capitán a 10.12 Sierra
pacemaker
es el demonio responsable de administrar el tiempo en macOS. Se utiliza adjtime
para ajustar el reloj según el contenido de /var/db/ntp.drift
.
Puede ver qué tan 'apagado' está su reloj mirando el contenido de ntp.drift
, por ejemplo, mi archivo contiene lo siguiente:
-23.640
Esto significa que el reloj está a -23.64 PPM de la hora en que debería estar. Las unidades de este número son PPM, o partes por millón. 1 PPM es 1 microsegundo / segundo, o 3.6ms / h.
Puede hacer que el reloj se actualice con mayor frecuencia ejecutando pacemaker
la -a
opción, proporcionando un tiempo en segundos para esperar entre movimientos de tiempo:
/usr/libexec/pacemaker -a 10
Para ver los parámetros que usa OS X para el marcapasos, abra /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" );
}
Para encontrar su configuración actual, ejecute con la -i
opción:
/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
Puede mostrar el registro ejecutando con la -v
opción:
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
funcionó. Me pregunto si el/var/db/ntp-kod
error está causando problemas con la sincronización automática; intentaré crearlo y volveré a comprobarlo en unos meses. =)Esta respuesta se aplica solo a 10.12 Sierra y menor.
Los detalles pueden ser útiles como referencia, pero otra respuesta cubre los detalles más nuevos de cronometraje de macOS de manera excelente.
El primer paso es ver si su tiempo está configurado.
Suponiendo que tiene valores de retraso / desplazamiento / fluctuación de fase inferiores a 100 (el retraso podría ser inferior a 1000 en situaciones normales para sistemas críticos con menos precisión de tiempo), el siguiente comando para ejecutar en la terminal es
ntpq
seguido por el servidor de tiempo de suntpq
preferencia y sistema. También puede probar otros servidores de hora para ver si tienen retrasos más bajos ya que al sistema de cronometraje le gusta tener una respuesta rápida y cercana de los servidores de hora al corregir la hora por diferencias de milisegundos y calcular cómo el reloj de hardware actual se está alejando de la hora estándar .Lo siguiente que debe verificar es su programa de marcapasos:
Esto muestra que en la batería, el intervalo de ajuste no es más de una vez cada 10 segundos y se ajusta aún menos si el error del reloj es inferior a 0.1 milisegundos.
Si encuentra que su desplazamiento es de segundos o más, es posible que desee cambiar los servidores de tiempo que usa o quizás cambiar los valores utilizados en el marcapasos para usar más energía y CPU, pero tenga un reloj más cercano al tiempo real a cambio de la configuración que Apple tiene enviado con 10.9.
fuente
Si va a http://time.gov , puede ver la hora oficial (hasta el segundo) y usarla para verificar si la hora de su sistema es correcta o no. Tenga en cuenta que esta es la hora oficial de NIST y realiza su propia sincronización en el navegador, independientemente de la hora del sistema (como ejemplo, puede ver aquí que time.gov maneja los segundos bisiestos, mientras que OS X aparentemente no).
fuente
Comenzando con High Sierra, el demonio del sistema ntpd fue reemplazado por el demonio del sistema temporizado que invoca / usr / libexec / timed.
El mejor ejecutivo que he encontrado para obtener detalles es
systemsetup
(ejecutar como root) con sus diversos indicadores:El resultado resultante es mucho menos detallado (= aburrido). Por ejemplo, no hay detalles de ∂T / deriva.
Aparentemente, el tiempo usa solo un servidor ntp (el primero en la lista, verificado con WireShark / LittleSnitch) incluso si se ingresan varios en el archivo de preferencias / ntp.conf del sistema.
Lectura adicional (no muy técnica): ¿Alguien tiene el tiempo? Cómo High Sierra ha cambiado la sincronización horaria
Un daemon ntpd heredado todavía está presente pero descargado. Sin embargo, se puede cargar ingresando en Terminal.app:
en modo deshabilitado SIP. Entrar
ntpq -p
funcionará de nuevo entonces.Para cargar el demonio en modo SIP habilitado, copie el archivo a / Library / LaunchDaemons /:
Modifique la etiqueta del plist con nano u otro editor de org.ntp.ntpd-legacy a org.ntp.ntpd:
Cargue el demonio:
Si encuentro un mejor ejecutivo para obtener detalles de tiempo con el demonio High Sierra predeterminado, la respuesta se actualizará.
fuente
Para obtener una respuesta confiable sobre qué tan bien está configurado su reloj, ejecute ntpdate en modo de depuración:
Esto girará por un tiempo y terminará en una línea como
En este caso, esto significaba que mi reloj local estaba apagado unos 810 µs (lo que sería espectacular, si es que es cierto, pero el valor muy por debajo de 100 ms indica una sincronización de trabajo).
fuente
Para verificar la sincronización del reloj, similar a la respuesta que sugiere que se ejecute
ntpdate
en modo de depuración, también puede ejecutarlo en modo de consulta para obtener resultados menos detallados.Esto es de mi Mac que ejecuta High Sierra 10.13.2, que se ejecuta en
timed
lugar del demonio NTP (ntpdate
todavía funciona porque no usa el demonio NTP).fuente