He configurado un cliente y/o servidor NTP (Network Time Protocol) para gestionar el reloj del sistema a través de una red. Pero, ¿cómo puedo verificar que está funcionando correctamente? ¿Cómo compruebo el estado del NTP?
Mantener la hora correcta es esencial en un sistema servidor y cliente. Puedes utilizar cualquiera de los siguientes programas para verificar que la configuración del cliente NTP funciona correctamente en sistemas Linux o tipo Unix.
¿Cómo comprobar que NTP funciona?
- ntpq – programa estándar de consulta NTP
- ntpstat – muestra el tiempo de la red estado de sincronización
- timedatectl – muestra o establece información sobre ntp usando systemd
Detalles del tutorial | |
---|---|
Nivel de dificultad | Fácil |
Privilegios de root | No |
Ninguno | Tiempo est. tiempo de lectura | 2m |
Veamos todos los comandos y ejemplos en detalle
Ocasionalmente puede que no encuentres las siguientes herramientas instaladas por defecto en tu distro Linux/Unix. Si obtienes un error de «comando no encontrado». Busque esas herramientas e instálelas.
Verifique si NTP funciona o no con el comando ntpstat
El comando ntpstat informará del estado de sincronización del demonio NTP que se ejecuta en la máquina local. Si se comprueba que el sistema local está sincronizado con una fuente de tiempo de referencia, ntpstat informará de la precisión horaria aproximada.
estado de salida del comando ntpstat
Puede utilizar el estado de salida (valores de retorno) para verificar sus operaciones desde un script de shell o la propia línea de comandos:
Escribe el comando de la siguiente manera:$ ntpstat
Salidas de ejemplo:
synchronised to NTP server (149.20.54.20) at stratum 3 time correct to within 42 ms polling server every 1024 s
Usa el comando echo para mostrar el estado de salida del cliente ntp:$ echo $?
Salidas de ejemplo:
0
Comprobar el estado de NTP con el comando ntpq
El programa de utilidad ntpq se utiliza para supervisar las operaciones del demonio NTP ntpd y determinar su rendimiento. El programa puede ser ejecutado en modo interactivo o controlado mediante argumentos de línea de comandos. Escriba el siguiente comando en su sistema basado en Linux o Unix:$ ntpq -pn
O$ ntpq -p
Salidas de ejemplo:
remote refid st t when poll reach delay offset jitter==============================================================================*dione.cbane.org 204.123.2.5 2 u 509 1024 377 51.661 -3.343 0.279+ns1.your-site.c 132.236.56.252 3 u 899 1024 377 48.395 2.047 1.006+ntp.yoinks.net 129.7.1.66 2 u 930 1024 377 0.693 1.035 0.241 LOCAL(0) .LOCL. 10 l 45 64 377 0.000 0.000 0.001
* la fuente a la que se sincroniza (syspeer). Lo anterior es un ejemplo de cliente ntp que funciona. Donde,
- -p : Imprime una lista de los peers conocidos por el servidor así como un resumen de su estado.
- -n : Imprime todas las direcciones de host en formato numérico de cuadrado de puntos en lugar de convertirlas a los nombres de host canónicos.
Otra fuente fiable es ejecutar el siguiente comando:$ ntpq -c rv
Busca el código de salto de la siguiente manera:
Así que el código de salto 0 (leap_none) significa un estado normal de sincronización. Y el código de salto 3 (leap_alarm) significa que NTP nunca se ha sincronizado. Aquí hay un ejemplo de salidas:
Una nota sobre el comando timedatectl
Si estás usando un sistema basado en systemd, ejecuta el siguiente comando para comprobar el estado del servicio# timedatectl status
Salidas de ejemplo:
¿Funciona mi NTP (systemd-timesyncd)?
configuración de systemd-timesyncd
Si NTP enabled está configurado como No. Prueba a configurarlo editando el archivo /etc/systemd/timesyncd.conf de la siguiente manera:# vi /etc/systemd/timesyncd.conf
Apunta/edita lo siguiente, es decir, añade servidores de tiempo o cambia los proporcionados, descomenta la línea correspondiente y enumera su nombre de host o IP separados por un espacio (por defecto de mi servidor Debian 8.x):
Servers=0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org
Guarda y cierra el archivo. Por último, inicia y habilita, ejecuta:# timedatectl set-ntp true
# timedatectl status
Salidas de la muestra:
Local time: Mon 2019-09-30 18:25:38 IST Universal time: Mon 2019-09-30 12:55:38 UTC RTC time: Mon 2019-09-30 12:55:38 Time zone: Asia/Kolkata (IST, +0530) System clock synchronized: yessystemd-timesyncd.service active: yes RTC in local TZ: no
Lo anterior es una forma sencilla de verificar que NTP funciona en Linux.
Conclusión
Has aprendido a verificar que tu configuración NTP funciona correctamente. Ahora ya sabes cómo comprobar el estado de tu fecha y hora, sincronizada con los servidores de tiempo upstream. Para más información consulta los docs de ntpd aquí.
🐧 11 comentarios hasta ahora…. añadir uno ↓
Categoría | Lista de comandos Unix y Linux |
---|---|
Gestión de archivos | cat | Firewall | Alpine Awall – CentOS 8 – OpenSUSE – RHEL 8 – Ubuntu 16.04 – Ubuntu 18.04 – Ubuntu 20.04 |
Utilidades de red | dig – host – ip – nmap |
OpenVPN | CentOS 7 – CentOS 8 – Debian 10 – Debian 8/9 – Ubuntu 18.04 – Ubuntu 20.04 |
Administrador de paquetes | apk – apt |
Gestión de procesos | bg – chroot – cron – disown – fg – jobs – killall – kill – pidof – pstree – pwdx – time |
Búsqueda | grep – whereis – which |
Información del usuario | grupos – id – lastcomm – last – lid/libuser-lid – logname – members – users – whoami – who – w | WireGuard VPN | Alpine – CentOS 8 – Debian 10 – Firewall – Ubuntu 20.04 |