«Como configurar la sincronización de hora y fecha en Debian 10» por Brian Boucheron y Kathleen Juell

Download PDF

Tabla de contenido:

Introducción

El cronometraje preciso se ha convertido en un componente crítico de las implementaciones modernas de software. Ya sea para asegurarse de que los registros se guarden en el orden correcto o que las actualizaciones de la base de datos se apliquen correctamente, horas y/o fechas fuera de sincronización puede causar errores, corrupción de datos y otros problemas difíciles para depurar.

Debian 10 tiene sincronización de tiempo integrada y activada por defecto usando el servidor de tiempo estándar ntpd, provisto por el paquete ntp. 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 usuario no root habilitado para sudo, como se describe en este tutorial de configuración del servidor Debian 10.

Paso 1 — Comandos básicos de tiempo

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

$ date

Ejecución y visualización:

Wed 31 Jul 2019 06:03:19 PM UTC

La mayoría de las veces, su servidor pasará por defecto a la zona horaria UTC, como está resaltada en color rojo en la salida anterior. UTC es Tiempo Universal Coordinado (Coordinated Universal Time), el tiempo a cero grados de longitud. La utilización del Tiempo Universal (Universal Time) reduce cualquier confusión cuando su infraestructura abarca varias zonas horarias.

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

Primero, enumere las zonas horarias disponibles:

$ timedatectl list-timezones

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

timedatectl list-timezones
timedatectl list-timezones

Ahora configure usted la zona horaria con el comando timedatectl set-timezone, asegurándose de reemplazar la parte resaltada a continuación con la zona horaria que encontró en la lista. Deberá usar sudo con timedatectl para realizar este cambio; en este caso lo configuraremos para la hora de la ciudad de Nueva York, EE. UU.:

$ sudo timedatectl set-timezone America/New_York

Usted puede verificar su ajuste ejecutando el comando date de nuevo:

$ date

Ejecución y visualización:

$ Wed 31 Jul 2019 02:08:43 PM EDT

La abreviatura de la zona horaria debería reflejar el nuevo valor elegido.

Ahora que ya sabemos cómo consultar el tiempo y configurar la zona horaria, vamos a asegurarnos de que el reloj sea sincronizado de manera apropiada.

Por favor, lea también   «Cómo instalar y asegurar Redis en Ubuntu 18.04» por Mark Drake (versión anterior por Justin Ellingwood)
sudo timedatectl set-timezone America/New_York
sudo timedatectl set-timezone America/New_York

Paso 2 — Verificando el estado de ntpd

De manera predeterminada Debian 10 ejecuta un servidor normal ntpd para mantener el reloj del sistema sincronizado con un grupo externo de servidores de hora. Podemos revisar si está en ejecución por medio del comando systemctl:

$ sudo systemctl status ntp

Ejecución y visualización:

● 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
. . .
sudo systemctl status ntp
sudo systemctl status ntp

La leyenda active (running) indica que el servicio ntpd fue levantado exitosamente. Para obtener más información acerca del estado de ntpd podemos utilizar el comando ntpq:

$ ntpq -p

Ejecución y visualización:

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
0.debian.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
1.debian.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
2.debian.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
3.debian.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
+208.67.72.50 152.2.133.55 2 u 12 64 377 39.381 1.696 0.674
+198.46.223.227 204.9.54.119 2 u 6 64 377 22.671 3.536 1.818
-zinc.frizzen.ne 108.61.56.35 3 u 43 64 377 12.012 1.268 2.553
-pyramid.latt.ne 204.123.2.72 2 u 11 64 377 69.922 2.858 0.604
+nu.binary.net 128.252.19.1 2 u 10 64 377 35.362 3.148 0.587
#107.155.79.108 129.7.1.66 2 u 65 64 377 42.380 1.638 1.014
+t1.time.bf1.yah 98.139.133.62 2 u 6 64 377 11.233 3.305 1.118
*sombrero.spider 129.6.15.30 2 u 47 64 377 1.304 2.941 0.889
+hydrogen.consta 209.51.161.238 2 u 45 64 377 1.830 2.280 1.026
-4.53.160.75 142.66.101.13 2 u 42 64 377 29.077 2.997 0.789
#horp-bsd01.horp 146.186.222.14 2 u 39 64 377 16.165 4.189 0.717
-ntpool1.603.new 204.9.54.119 2 u 46 64 377 27.914 3.717 0.939
ntpq -p
ntpq -p

ntpq es una herramienta de consulta para ntpd. El parámetro -p consulta información acerca de los pares (peers, en idioma inglés) a los cuales está conectado. Lo que usted visualice en su sistema puede ser ligeramente diferente, pero debería listar al menos la lista por defecto y unos cuantos más. Tenga siempre en cuenta que puede tomar unos pocos minutos para ntpd el establecer conexión con otros servidores.

Paso 3 — Cambiando a systemd-timesyncd

Es posible utilizar el componente integrado en systemd, el servicio timesyncd. Este software es una alternativa ligera a ntpd y está hecho expresamente para trabajar con systemd. Note usted, sin embargo, que no podrá ofrecer trabajar como servidor de hora, y es ligeramente menos sofisticado en las técnicas usadas para mantener la hora en sincronía. Si usted ejecuta sistemas distribuidos en tiempo real, tal vez usted quiera permanecer usando ntpd.

Para usar timesyncd, debemos primero desinstalar a ntpd:

$ sudo apt purge ntp

Luego iniciar el servicio timesyncd:

$ sudo systemctl start systemd-timesyncd

Ejecución y visualización:

               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

Esta orden muestra tanto el tiempo local, el tiempo universal (el cual puede ser el mismo que el local si no se ha cambiado la zona horaria) y alguna otra información sobre el estado del tiempo de red. La leyenda System clock synchronized: yes significa que el tiempo ha sido sincronizado exitosamente, y la cadena de caracteres NTP service: active indica que el servicio timesyncd está habilitado y en ejecución.

timedatectl
timedatectl

Conclusión

En este artículo hemos demostrado cómo visualizar el tiempo del sistema, cambiar la zona horaria, trabajar con ntpd, así como prescindir de él y cambiar a trabajar con el servicio timesyncd. Si usted tiene necesidades más sofisticadas en cuanto al tiempo exacto y que no hayamos cubierto aquí, usted puede acudir a la documentación oficial de NTP  así como también visitar el Proyecto de Grupo NTP, un grupo global de voluntarios que mantienen gran parte de la infraestructura NTP en el mundo.

Autores: Brian Boucheron y Kathleen Juell.

Traducción y pruebas (capturas de pantalla): Jimmy Olano.


Download PDF