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.