Tabla de contenido
Systemd es el sistema de inicio y el administrador de servicios utilizado por muchas distribuciones Linux modernas. Va más allá de simplemente iniciar servicios en el arranque; también proporciona mecanismos avanzados de automatización, como los timers de systemd. En este manual, exploraremos cómo utilizar systemd y sus timers para programar y automatizar tareas en Linux de una manera robusta y flexible.
Introducción a Systemd
Systemd es responsable de inicializar y administrar servicios, montar sistemas de archivos, configurar redes y muchas otras tareas importantes durante el proceso de arranque de un sistema Linux. Se basa en unidades, donde cada unidad puede ser un servicio, un timer, un montaje y más.
Comandos básicos de Systemd
systemctl start servicio
: Inicia un servicio.systemctl stop servicio
: Detiene un servicio.systemctl enable servicio
: Habilita un servicio para que se inicie en el arranque.systemctl disable servicio
: Deshabilita un servicio en el arranque.systemctl status servicio
: Muestra el estado actual de un servicio.
Timers de Systemd
Los timers de systemd son similares a los cron jobs, pero ofrecen más características y están estrechamente integrados con el sistema de inicio de systemd. Permiten ejecutar tareas programadas, como scripts o comandos, en intervalos regulares o en momentos específicos.
Crear un Timer
Un timer requiere dos archivos: un archivo de servicio que define qué tarea ejecutar y un archivo de timer que especifica cuándo ejecutarla.
Ejemplo: Supongamos que queremos ejecutar un script (/ruta/del/script.sh
) todos los días a las 3 a.m.
1. Crear el archivo de servicio mi-tarea.service
en /etc/systemd/system/
:
[Unit]
Description=Mi tarea programada
[Service]
ExecStart=/ruta/del/script.sh
2. Crear el archivo de timer correspondiente mi-tarea.timer
en /etc/systemd/system/
:
[Unit]
Description=Timer para mi tarea programada
[Timer]
OnCalendar=*-*-* 03:00:00
Persistent=true
[Install]
WantedBy=timers.target
3. Activar y arrancar el timer:
systemctl enable mi-tarea.timer
systemctl start mi-tarea.timer
Visualizar y administrar Timers
systemctl list-timers
: Lista todos los timers activos.systemctl status mi-tarea.timer
: Muestra el estado del timer «mi-tarea».
Consideraciones y Ventajas
El uso de timers de systemd tiene algunas ventajas sobre los métodos tradicionales como cron:
- Integración estrecha con otros componentes de systemd.
- Mayor flexibilidad en la programación de tareas.
- Capacidad de definir dependencias con otros servicios.
- Registro centralizado a través del sistema de registro de systemd (journald).
El dominio de systemd y sus timers proporciona una herramienta poderosa para la automatización avanzada en sistemas Linux, permitiendo una administración más eficiente y adaptable a las necesidades modernas.