¿Cómo verificar si NTP ajustó la hora del sistema en Linux?

18

Tengo una máquina que experimentó algunos problemas con algunas de las cosas en tiempo real que estoy ejecutando. Una ventaja que tengo es que el demonio NTP puede haber movido el tiempo, causando falsos tiempos de espera.

¿Cómo puedo saber si el demonio NTP realmente movió el tiempo? ¿Algún registro? Veo reiniciar el demonio NTP en / var / log / messages, pero no sé si el ajuste de tiempo debería estar allí también.

para aclarar: necesito entenderlo desde los registros, después del evento. Puede ser 2 días después de que se ajustó el tiempo. Ejecutar comandos para ver el estado actual no ayuda.

n-alexander
fuente

Respuestas:

8

Puede usar el ntpdc -c sysinfocomando para consultar el estado de ntpd. Devuelve una salida similar a esta:

system peer:          0.0.0.0
system peer mode:     unspec
leap indicator:       11
stratum:              16
precision:            -20
root distance:        0.00000 s
root dispersion:      338.44917 s
reference ID:         [73.78.73.84]
reference time:       00000000.00000000  Thu, Feb  7 2036  8:28:16.000
system flags:         auth monitor ntp kernel stats
jitter:               0.000000 s
stability:            0.000 ppm
broadcastdelay:       0.003998 s
authdelay:            0.000000 s
Janne Pikkarainen
fuente
4

El archivo de deriva (/ var / lib / ntp / drift) no mide la diferencia entre la hora local y la hora calculada por ntpd en función de los servidores de hora contactados.

En cambio, es la deriva estimada (error de frecuencia) del reloj local (en ppm). Ntpd actualiza este valor una vez por hora y no disminuye con el tiempo.

Por lo que puedo decir, el valor es usado por ntpd después de un reinicio para estimar qué tan equivocado está el reloj local (el reloj local funciona incluso cuando la máquina está apagada).

Ejemplo: Contenido del archivo: 5 La máquina se apagó 1 día (86400 s) 5 ppm de 86400 es 0.432 => El reloj local es 0.432 s "en el futuro"

Los puntos son: - ntpd ahora puede aplicar una primera corrección aproximada a la hora local (-0.432 s) inmediatamente después de comenzar - ntpd sabe de inmediato, qué tan equivocado está el reloj local (en este ejemplo: 5 ppm)

(No se me permite comentar sobre el comentario de Sirex, así que agregué un nuevo comentario)

Martin Schneeweis
fuente
3

debe tener un valor en el archivo de deriva. Su ubicación estará en su /etc/ntp.conf

por ejemplo: "driftfile / var / lib / ntp / drift"

este archivo se usa para registrar qué tan lejos está su reloj de lo que debería estar, y lentamente ntp debería reducir este valor a medida que pasa el tiempo. - No lo hará de una vez porque eso podría causar problemas de marca de tiempo en el sistema.

Sirex
fuente
Esta es una buena información, gracias. Aún así, después de que se haya movido el tiempo, será 0 y habré perdido mi información. ¿Ntp no registra ningún mensaje para decirme que ya lo ha hecho?
n-alexander
3

ntpq -nc peers le mostrará su estado de sincronización con todos los pares.

BillThor
fuente
2

Lo siento, este es un hilo viejo, espero no haber roto una regla aquí :)

En /etc/ntp.conf, tengo una línea que se ve así:

#statsdir /var/log/ntpstats/

La descripción dice que se descomente esta línea para registrar estadísticas. Acabo de configurar ntp en nuestro servidor, así que no estoy seguro de lo que registra, pero terminé buscando la misma información, así que espero que esto ayude a alguien más.

dsl101
fuente