El comando timedatectl en Linux: gestionar fecha y hora del sistema

Introducción

El comando timedatectl es una herramienta esencial en las distribuciones modernas de Linux que permite consultar y modificar la configuración de fecha, hora y zona horaria del sistema, así como gestionar la sincronización mediante el protocolo NTP. Con la llegada de systemd, timedatectl se convirtió en la interfaz unificada para estas tareas, reemplazando a herramientas antigüas como date, hwclock y ntpdate. En este artículo aprenderás desde los conceptos básicos hasta ejemplos avanzados que te ayudarán a mantener tu servidor o estación de trabajo siempre en el horario correcto.

¿Qué es timedatectl?

timedatectl forma parte del paquete systemd y se ejecuta en el espacio de usuario. No necesita privilegios de root para mostrar información, pero sí para cambiar la configuración. Su salida incluye la hora local, la hora universal (UTC), el estado de la sincronización NTP y la zona horaria configurada.

Sintaxis básica

El formato general es: timedatectl [OPCIONES] [COMANDO]. Algunas de las opciones más usadas son --no-pask para suprimir la paginación y --adjust-system-clock al cambiar la zona horaria. Los comandos principales son set-time, set-timezone, set-ntp y status.

Mostrar la configuración actual

Ejecutar timedatectl sin argumentos muestra un resumen completo. La salida incluye líneas como:

  • Local time: Vie 2025-09-24 10:30:00 CEST
  • Universal time: Vie 2025-09-24 08:30:00 UTC
  • RTC time: n/a
  • Time zone: Europe/Madrid (CEST, +0200)
  • System clock synchronized: yes
  • NTP service: active
  • RTC in local TZ: no

Cambiar la fecha y la hora

Para fijar manualmente la fecha y la hora se usa timedatectl set-time 'YYYY-MM-DD HH:MM:SS'. Por ejemplo:

timedatectl set-time '2025-10-01 15:30:00'

Este comando detiene temporalmente la sincronización NTP, aplica el nuevo valor y, si se desea, se puede volver a activar NTP después.

Establecer la zona horaria

La lista de zonas disponibles se obtiene con timedatectl list-timezones. Para establecer una zona, por ejemplo America/New_York, se ejecuta:

timedatectl set-timezone America/New_York

El sistema actualiza inmediatamente el reloj y guarda la configuración en /etc/localtime.

Activar o desactivar la sincronización NTP

El servicio NTP se controla con set-ntp. Para activarlo:

timedatectl set-ntp true

Para desactivarlo:

timedatectl set-ntp false

Cuando está activo, systemd-timesyncd (o el demonio NTP configurado) mantiene el reloj sincronizado con servidores de tiempo.

Ejemplos prácticos

  • Verificar el estado antes de cambiar: timedatectl status
  • Cambiar a zona horaria de Tokio y sincronizar: timedatectl set-timezone Asia/Tokyo && timedatectl set-ntp true
  • Restablecer el reloj al valor del hardware (RTC): timedatectl set-local-rtc 0 (para usar UTC en el reloj de hardware)
  • Desactivar temporalmente NTP para realizar pruebas: timedatectl set-ntp false, hacer cambios y luego volver a activarlo.

Solución de problemas comunes

Si el comando devuelve Failed to set time: Unit dbus-org.freedesktop.timedate1.service not found, asegúrate de que systemd esté ejecutándose y que tengas privilegios de sudo. Otro síntoma frecuente es la desincronización después de cambiar la zona horaria; en ese caso, reinicia el servicio de tiempo con systemctl restart systemd-timesyncd.

Conclusión

timedatectl es una interfaz potente y sencilla para manejar todos los aspectos del reloj del sistema en Linux. Dominar su uso te permite evitar problemas de registro, asegurar la consistencia de los logs y garantizar que las aplicaciones dependientes del tiempo funcionen correctamente. Con los ejemplos y explicaciones presentados, ya estás listo para configurar fecha, hora y zona horaria en cualquier distribución basada en systemd.

Esta obra está bajo una Licencia Creative Commons Atribución 4.0 Internacional para Francesc Roig francesc@vivaldi.net .

EspañolesEspañolEspañol