$ timedatectl status
...
Network time on: yes
NTP synchronized: no
Como la salida implica, el tiempo aún no está sincronizado. ¿Puede alguien ayudarme con las siguientes preguntas?
¿Cuánto tiempo llevará sincronizar Timesyncd con el NTP? A qué intervalos hace eso, ¿dónde puedo verificarlos y modificarlos?
En casos urgentes: ¿Puedo configurar la hora manualmente o puedo forzar la sincronización temporal para que se sincronice inmediatamente con el servidor NTP?
Para usar una implementación NTP real, necesita instalar y configurar una, chronyo tal vez ntpd. Hágalo si necesita alguna supervisión del rendimiento del tiempo. Asumiré Chrony.
Agregue ibursta su poolo server líneas en su configuración para acelerar los pocos paquetes iniciales. Todavía puede tomar un par de minutos estabilizarse, tenga paciencia.
chronyc trackingmostrará el desplazamiento actual. Tenga una idea de cuáles son sus requisitos, una precisión de un segundo puede tolerar fácilmente el desplazamiento de decenas de milisegundos.
chronyc makesteprealizará el ajuste actual de inmediato. No es necesario por lo general.
Sobre la única manera de establecer el tiempo con timesyncd es de forma manual: timedatectl set-time "2019-01-15 00:40:16". No tiene medios robustos para disciplinar y controlar el reloj. Las estadísticas básicas de NTP vía timedatectl timesync-statusson algo relativamente nuevo, no creo que esa opción esté disponible en Red Hat 7 o Ubuntu 18.04.
systemd define "sincronizado" para ser si NTP alguna vez se usó para decirle a Linux que ajuste el reloj. Específicamente, si la llamada de disciplina del núcleo adjtimex () regresó sin error, y no el estado inicial. Consulte el código fuente, systemd / src / basic / time-util.c.
Gracias por tu respuesta, John. Entonces, ¿puedo deshabilitar systemd-timesyncd y usar solo chrony? No estoy seguro de entender por qué systemd tiene una opción NTP y se llama timeSYNCd si no puede sincronizar la hora en realidad. “Systemd define" sincronizado "para que sea si la llamada de disciplina de núcleo NTP adjtimex () regresó sin error, y no el estado inicial" - esto no es muy claro para mí.
manifiesto
1
@chevallier systemd-timesyncd es muy simple y es lo suficientemente bueno para los casos más comunes, por ejemplo, un servidor con un reloj de tiempo real que se espera que se ejecute y en la red 24x7. El suyo no es un caso común, por lo que probablemente no debería usarlo. chrony es mucho mejor para lidiar con las interrupciones de la conectividad de la red y estar apagado durante períodos prolongados (por ejemplo, una computadora portátil) o no tener un RTC (por ejemplo, dispositivos integrados).
Michael Hampton
1
timesyncd es un cliente SNTP, por lo que establece el tiempo sin disciplinarlo adecuadamente. Lo cual está bien para los requisitos de precisión gruesa. Si desea medir el rendimiento del tiempo o esperar hasta que se sincronice, use un NTP completo como chrony o ntpd.
John Mahowald
11
Sin instalar más paquetes ... Apague NTP, configure manualmente el tiempo para estar lo suficientemente cerca , vuelva a encender NTP:
Establecer servicio NTP inactivo
$ timedatectl set-ntp false
Establecer la hora manualmente
Sí, eso es triste, pero funciona y no necesitas perder el tiempo instalando nada y hacerlo funcionar. Obtenga el tiempo LOCAL aproximado del reloj de pared, su teléfono, Internet. No necesita ser perfecto porque volveremos a activar ntp en un momento ...
$ sudo timedatectl set-time "2019-06-22 13:41:00"
Establecer servicio NTP activo
$ sudo timedatectl set-ntp true
Espere
john@mybox:~$ timedatectl
Local time: Sat 2019-06-22 13:49:53 AEST
Universal time: Sat 2019-06-22 03:49:53 UTC
RTC time: Sat 2019-06-22 03:49:54
Time zone: Australia/Sydney (AEST, +1000)
System clock synchronized: no
NTP service: active
RTC in local TZ: no
El "Reloj del sistema sincronizado: no" se convertirá en "sí" cuando se haya ajustado lo suficiente como para considerarse "sincronizado".
Solución de problemas
$ cat /etc/systemd/timesyncd.conf
[Time]
NTP=pool.ntp.org
$ timedatectl timesync-status
Server: 13.210.208.89 (au.pool.ntp.org)
Poll interval: 8min 32s (min: 32s; max 34min 8s)
Packet count: 0
$ grep systemd-timesyncd /var/log/syslog | tail
Jun 22 14:13:09 meebox systemd-timesyncd[8333]: Timed out waiting for reply from 103.214.220.220:123 (au.pool.ntp.org).
El firewall corporativo estaba bloqueando mis paquetes ntp.
Instalar otro servicio de sincronización horaria también fue mi primera idea, pero eso es solo una solución. Estaba buscando una solución real. Esa es tu respuesta. Funciona. Gracias :-)
Sin instalar más paquetes ... Apague NTP, configure manualmente el tiempo para estar lo suficientemente cerca , vuelva a encender NTP:
Establecer servicio NTP inactivo
Establecer la hora manualmente
Sí, eso es triste, pero funciona y no necesitas perder el tiempo instalando nada y hacerlo funcionar. Obtenga el tiempo LOCAL aproximado del reloj de pared, su teléfono, Internet. No necesita ser perfecto porque volveremos a activar ntp en un momento ...
Establecer servicio NTP activo
Espere
El "Reloj del sistema sincronizado: no" se convertirá en "sí" cuando se haya ajustado lo suficiente como para considerarse "sincronizado".
Solución de problemas
El firewall corporativo estaba bloqueando mis paquetes ntp.
fuente