¿Cómo puedo saber si mi Mac está manteniendo el reloj actualizado correctamente?

25

Me gustaría saber cuáles son las configuraciones predeterminadas para OS X en términos de mantener el reloj ajustado cuando habilito la sincronización automática de la hora en la Fecha y amp; Preferencia de tiempo.

Sé que el venerable ntpd daemon en Mavericks (10.9) y Yosemite (10.10) ya no es responsable de ajustar el tiempo y, en cambio, se ha introducido un nuevo programa pacemaker . Entonces, ¿cómo puedo saber las cosas? ¿Trabaja o necesita un ajuste para mantener el tiempo?

    
pregunta bmike 19.01.2014 - 19:01

6 respuestas

36

10.14 Mojave

Mojave todavía usa timed , pero ntpdate se ha eliminado. Para verificar y actualizar la hora del sistema, puede llamar directamente a sntp .

$ 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

Si está recibiendo este error:

kod_init_kod_db(): Cannot open KoD db file /var/db/ntp-kod: No such file or directory

prueba:

sudo touch /var/db/ntp-kod
sudo chmod 666 /var/db/ntp-kod

10.13 High Sierra

High Sierra usa timed , desde /usr/libexec/timed , ejecutado por el usuario del sistema _timed .

  

cronometrado mantiene la precisión del reloj del sistema al sincronizar el reloj con los relojes de referencia mediante tecnologías como NTP. Las entradas se combinan dentro de cronometrada, donde se calcula la incertidumbre para facilitar la programación de trabajos de tiempo proactivo. El tiempo también es consciente de las condiciones de energía / batería.

timed es administrado por LaunchDaemon /System/Library/LaunchDaemons/com.apple.timed.plist . carreras cronometradas ...

  • cuando el daemon se carga al inicio (RunAtLoad: true)
  • cada 3600 segundos (StartInterval: 3600)
  • cuando el Modo avión está deshabilitado (el modo de avión com.apple.systemconfiguration cambió: com.apple.radios.plist AirplaneMode false, que parece haberse 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 usa el servidor de tiempo establecido en /etc/ntp.conf , que de manera 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 cronometrado usted mismo, como se menciona en la página del manual:

  

el tiempo no toma argumentos, y los usuarios no deben iniciarlo manualmente.

Según el usuario granada29 de los Foros de desarrolladores de Apple en la publicación ntpd, cronometrado y cronológico en 10.13 , cronometrado cumple la siguiente:

  

parece que el tiempo es un simple cliente sntp, es decir, sondea el NTP periódicamente (15 minutos) y usa la llamada al sistema settimeofday () para configurar el reloj del sistema. Supongo que tiene algo de astucia para evitar que el reloj retroceda, pero no hay manera de saberlo.

10.11 El Capitán a 10.12 Sierra

pacemaker es el demonio responsable de administrar el tiempo en macOS. Utiliza adjtime para ajustar el reloj según el contenido de /var/db/ntp.drift .

Puede ver qué tan "apagado" está su reloj mirando los contenidos de ntp.drift ; por ejemplo, mi archivo contiene lo siguiente:

-23.640

Esto significa que el reloj está a -23.64 PPM del tiempo 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 más frecuencia ejecutando pacemaker con la opción -a , 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 opción -i :

/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 opción -v :

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%
    
respondido por el grg 19.01.2014 - 19:15
5

El primer paso es ver si su tiempo está configurado.

Mac:~ me$ ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*time.apple.com  17.168.198.149   2 u 1046  512   37   58.475    9.477   3.674

Suponiendo que tiene valores de retardo / desplazamiento / fluctuación de fase inferiores a 100 (el retardo podría ser inferior a 1000 en situaciones normales para sistemas menos precisos y críticos), el siguiente comando para ejecutar en el terminal es ntpq seguido por el servidor de tiempo de su ntpq y preferencia del sistema. También puede probar otros servidores de tiempo para ver si tienen retrasos menores, ya que al sistema de control de tiempo le gusta tener una respuesta cercana y rápida de los servidores de tiempo cuando corrigen la diferencia de milisegundos y calculan cómo el reloj de hardware actual se está alejando de la hora estándar. .

Mac:~ me$ ntpdate -q time.apple.com
server 17.151.16.12, stratum 2, offset 0.081698, delay 0.11237
server 17.151.16.20, stratum 2, offset 0.081365, delay 0.11310
server 17.151.16.21, stratum 2, offset 0.082754, delay 0.11440
server 17.151.16.22, stratum 2, offset 0.081750, delay 0.11264
server 17.151.16.23, stratum 2, offset 0.082691, delay 0.11415
server 17.151.16.38, stratum 2, offset 0.082077, delay 0.11458
server 17.171.4.13, stratum 2, offset 0.084822, delay 0.08054
server 17.171.4.14, stratum 2, offset 0.083749, delay 0.08142
server 17.171.4.15, stratum 2, offset 0.086343, delay 0.07605
server 17.171.4.33, stratum 2, offset 0.086526, delay 0.07690
server 17.171.4.34, stratum 2, offset 0.084500, delay 0.07997
server 17.171.4.35, stratum 2, offset 0.083987, delay 0.08278
server 17.171.4.36, stratum 2, offset 0.084382, delay 0.08028
server 17.171.4.37, stratum 2, offset 0.085948, delay 0.07831
server 17.151.16.14, stratum 2, offset 0.082043, delay 0.11270
19 Jan 12:09:32 ntpdate[4592]: adjust time server 17.171.4.15 offset 0.086343 sec
Mac:~ me$ ntpq
ntpq> assoc

ind assid status  conf reach auth condition  last_event cnt
===========================================================
  1 57788  9014   yes   yes  none    reject   reachable  1
ntpq> peer
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 time.apple.com  17.168.198.148   2 u  729  512    1  133.274   51.653 371.362
ntpq> q

Lo siguiente a verificar es su programa de marcapasos:

Mac:~ me$ ps -ef|grep [p]acemaker
0    76     1   0 Fri08AM ??         0:03.64 /usr/libexec/pacemaker -b -e 0.0001 -a 10

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 tal vez cambiar los valores utilizados en el marcapasos para usar más energía y CPU, pero tener un reloj más cercano al tiempo real a cambio del configuración que Apple ha enviado con 10.9.

respondido por el bmike 19.01.2014 - 19:26
3

Si accede a enlace , puede ver la hora oficial (hasta el segundo) y usarla para verificar si la hora del 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 here que time.gov maneja los segundos de salto, mientras que OS X aparentemente no lo hace).

    
respondido por el asmeurer 06.09.2015 - 20:24
3

Comenzando con High Sierra, el demonio del sistema ntpd fue reemplazado por el demonio del sistema temporizado que invoca a / usr / libexec / timed.

El mejor ejecutivo que he encontrado para obtener detalles es systemsetup (ejecutado como root) con sus distintos indicadores:

[-getusingnetworktime] [-setusingnetworktime on | off]
[-getnetworktimeserver] [-setnetworktimeserver timeserver]

El resultado resultante es mucho menos detallado (= aburrido). Por ejemplo, no hay detalles de ∂T / deriva.

Aparentemente, cronometrado usa solo un servidor ntp (el primero listado - verificado con WireShark / LittleSnitch) incluso si se ingresan varios en el archivo de preferencias del sistema / ntp.conf.

Lecturas adicionales (no muy técnicas): ¿Alguien tiene el tiempo? Cómo High Sierra ha cambiado la sincronización horaria

Un demonio ntpd heredado todavía está presente pero descargado. Sin embargo, se puede cargar ingresando en Terminal.app:

sudo launchctl load [-F|-w] /System/Library/LaunchDaemons/org.ntp.ntpd-legacy.plist

en modo inhabilitado SIP. Ingresando ntpq -p funcionará de nuevo entonces.

Para cargar el demonio en modo SIP habilitado, copie el archivo a / Library / LaunchDaemons /:

sudo cp /System/Library/LaunchDaemons/org.ntp.ntpd-legacy.plist /Library/LaunchDaemons/org.ntp.ntpd.plist

Modifique la etiqueta de la lista con nano u otro editor de org.ntp.ntpd-legacy a org.ntp.ntpd:

sudo nano /Library/LaunchDaemons/org.ntp.ntpd.plist

Cargar el demonio:

sudo launchctl load -w /Library/LaunchDaemons/org.ntp.ntpd.plist

Si encuentro un ejecutivo mejor para obtener detalles de la hora con el daemon de High Sierra predeterminado, la respuesta se actualizará.

    
respondido por el klanomath 10.01.2018 - 20:01
0

Para obtener una respuesta confiable sobre qué tan bien está configurado su reloj, ejecute ntpdate en modo de depuración:

ntpdate -d pool.ntp.org

Esto girará por un tiempo y terminará en una línea como

 1 Apr 17:38:16 ntpdate[4711]: adjust time server 123.45.67.89 offset 0.000810 sec

En este caso, esto significa que mi reloj local estaba apagado a unos 810 µs (lo que sería espectacular, si fuera cierto, pero el valor muy por debajo de 100 ms indica una sincronización de trabajo).     

respondido por el cabo 04.04.2018 - 18:15
0

Para verificar la sincronización del reloj, similar a la respuesta que sugiere ejecutar ntpdate en el modo de depuración, también puede ejecutarlo en el modo de consulta para obtener un resultado menos detallado.

$ ntpdate -q pool.ntp.org
server 85.199.214.102, stratum 1, offset 0.006256, delay 0.05470
server 95.215.175.2, stratum 3, offset 0.005234, delay 0.05624
server 217.114.59.3, stratum 2, offset 0.007166, delay 0.06274
server 85.199.214.100, stratum 1, offset 0.006319, delay 0.05396
22 Jun 09:20:55 ntpdate[84112]: adjust time server 85.199.214.100 offset 0.006319 sec
$

Esto es de mi Mac que ejecuta High Sierra 10.13.2, que ejecuta timed en lugar del daemon NTP ( ntpdate todavía funciona porque no usa el daemon NTP).

    
respondido por el JungleMartin 22.06.2018 - 10:27

Lea otras preguntas en las etiquetas