Introducción

El cronometraje preciso se ha convertido en un componente crítico de las implementaciones modernas de software. Ya sea que se esté asegurando de que los registros se registren en el orden correcto o que las actualizaciones de la base de datos se apliquen correctamente, el tiempo fuera de sincronización puede causar errores, corrupción de datos y otros problemas difíciles de depuración.

Debian 10 tiene sincronización de tiempo incorporada y activada por defecto usando el servidor de tiempo ntpd estándar, provisto por ntp paquete. En este artículo veremos algunos comandos básicos relacionados con el tiempo, verificaremos que ntpd esté activo y conectado a sus pares, y aprenderemos cómo activar el servicio de tiempo de red alternativo systemd-timesyncd.

Prerrequisitos

Antes de comenzar este tutorial, necesitará un servidor Debian 10 con un servidor no root, sudousuario habilitado, como se describe en este tutorial de configuración del servidor Debian 10.

Paso 1: navegar por los comandos de tiempo básicos

El comando más básico para averiguar la hora en su servidor es date. Cualquier usuario puede escribir este comando para imprimir la fecha y la hora:

Output

Wed 31 Jul 2019 06:03:19 PM UTC

La mayoría de las veces, su servidor tendrá el valor predeterminado UTC zona horaria, como se resalta en la salida anterior. UTC es Tiempo universal coordinado, el tiempo a cero grados de longitud. El uso constante de Universal Time reduce la confusión cuando su infraestructura abarca varias zonas horarias.

Si tiene diferentes requisitos y necesita cambiar la zona horaria, puede usar el timedatectl comando para hacerlo.

Primero, enumere las zonas horarias disponibles:

  • timedatectl list-timezones

 

Se imprimirá una lista de zonas horarias en su pantalla. Puedes presionar SPACE para avanzar y b para subir de página. Una vez que encuentre la zona horaria correcta, anótela y escriba q para salir de la lista

Ahora configure la zona horaria con timedatectl set-timezone, asegurándose de reemplazar la parte resaltada a continuación con la zona horaria que encontró en la lista. Necesitarás usar sudo con timedatectl para hacer este cambio:

  • sudo timedatectl set-timezone America/New_York

 

Puede verificar sus cambios ejecutando date de nuevo:

Output

Wed 31 Jul 2019 02:08:43 PM EDT

La abreviatura de la zona horaria debe reflejar el nuevo valor elegido.

Ahora que sabemos cómo verificar el reloj y establecer zonas horarias, asegurémonos de que nuestra hora se sincronice correctamente.

Paso 2 – Verificando el estado de ntpd

De forma predeterminada, Debian 10 ejecuta el servidor ntpd estándar para mantener sincronizada la hora de su sistema con un grupo de servidores de hora externos. Podemos comprobar que se está ejecutando con el systemctl mando:

  • sudo systemctl status ntp

 

Output

● ntp.service – Network Time Service Loaded: loaded (/lib/systemd/system/ntp.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2019-07-31 13:57:08 EDT; 17min ago Docs: man:ntpd(8) Main PID: 429 (ntpd) Tasks: 2 (limit: 1168) Memory: 2.1M CGroup: /system.slice/ntp.service └─429 /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 106:112 . . .

los active (running) El estado indica que ntpd se inició correctamente. Para obtener más información sobre el estado de ntpd podemos usar el ntpq mando:

Output

ntpq es una herramienta de consulta para ntpd. los -p flag solicita información sobre los servidores NTP (o pagseers) ntpd está conectado a. Su salida será ligeramente diferente, pero debería enumerar los servidores de grupo de Debian predeterminados más algunos otros. Tenga en cuenta que ntpd puede tardar unos minutos en establecer conexiones.

Paso 3 – Cambiar a systemd-timesyncd

Es posible usar el sistema incorporado timesyncd componente para reemplazar ntpd. timesyncd es una alternativa más liviana a ntpd que está más integrada con systemd. Sin embargo, tenga en cuenta que no admite la ejecución como un servidor horario, y es un poco menos sofisticado en las técnicas que utiliza para mantener sincronizada la hora de su sistema. Si está ejecutando sistemas distribuidos complejos en tiempo real, es posible que desee seguir con ntpd.

Para usar timesyncd, primero debemos desinstalar ntpd:

Luego, inicie el servicio timesyncd:

  • sudo systemctl start systemd-timesyncd

 

Finalmente, verifique el estado del servicio para asegurarse de que se esté ejecutando:

  • sudo systemctl status systemd-timesyncd

 

Output

● systemd-timesyncd.service – Network Time Synchronization Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; enabled; vendor preset: enabled) Drop-In: /usr/lib/systemd/system/systemd-timesyncd.service.d └─disable-with-time-daemon.conf Active: active (running) since Wed 2019-07-31 14:21:37 EDT; 6s ago Docs: man:systemd-timesyncd.service(8) Main PID: 1681 (systemd-timesyn) Status: «Synchronized to time server for the first time 96.245.170.99:123 (0.debian.pool.ntp.org).» Tasks: 2 (limit: 1168) Memory: 1.3M CGroup: /system.slice/systemd-timesyncd.service └─1681 /lib/systemd/systemd-timesyncd

Nosotros podemos usar timedatectl para imprimir la comprensión actual del sistema de la hora:

Output

Local time: Wed 2019-07-31 14:22:15 EDT Universal time: Wed 2019-07-31 18:22:15 UTC RTC time: n/a Time zone: America/New_York (EDT, -0400) System clock synchronized: yes NTP service: active RTC in local TZ: no

Esto imprime la hora local, la hora universal (que puede ser la misma que la hora local, si no cambiaste de la zona horaria UTC) y alguna información sobre el estado de la hora de la red. System clock synchronized: yes significa que el tiempo se ha sincronizado correctamente y NTP service: active significa que timesyncd está habilitado y ejecutándose.

Conclusión

En este artículo, hemos mostrado cómo ver la hora del sistema, cambiar las zonas horarias, trabajar con ntpd y cambiar al servicio timesyncd del sistema. Si tiene necesidades de cronometraje más sofisticadas que las que hemos cubierto aquí, puede consultar la documentación oficial de NTPy también eche un vistazo a el proyecto de agrupación NTP, un grupo global de voluntarios que proporcionan gran parte de la infraestructura NTP del mundo.