Introducción a los temporizadores de systemd: una alternativa moderna a los trabajos cron

¿Qué son los temporizadores de systemd?

El temporizador de systemd es un sustituto moderno y potente de los trabajos cron tradicionales, diseñado para programar y activar unidades de servicio de systemd. Simplifica la automatización en Linux al ofrecer mayor flexibilidad, registro y gestión de dependencias que el sistema cron clásico.

¿Por qué usar temporizadores de systemd en lugar de cron?

Los temporizadores de systemd ofrecen varias ventajas sobre cron, lo que los convierte en la opción preferida para automatizar tareas en entornos Linux:

  • Gestión unificada: gestiona los temporizadores junto con otras unidades de systemd (iniciar, detener, habilitar, deshabilitar).
  • Mejor registro: usa journalctl para un registro detallado y la supervisión del estado.
  • Programación flexible: admite tanto la sintaxis basada en calendario como temporizadores monotónicos (relativos).
  • Gestión de eventos perdidos: recupera automáticamente los eventos perdidos tras un reinicio.

Ejemplo rápido: ejecutar un script todos los días a medianoche

Aquí tienes una guía paso a paso para crear un temporizador de systemd que ejecuta un script a diario a medianoche:

1. Crea una unidad de servicio

La unidad de servicio define la acción que se va a realizar, en este caso, ejecutar un script.

Crea el archivo /etc/systemd/system/daily-script.service:

[Unit]
Description=Run my daily script

[Service]
Type=oneshot
ExecStart=/usr/local/bin/myscript.sh

2. Crea una unidad de temporizador

La unidad de temporizador programa cuándo debe ejecutarse el servicio.

Crea el archivo /etc/systemd/system/daily-script.timer:

[Unit]
Description=Run my daily script every day at midnight

[Timer]
OnCalendar=*-*-* 00:00:00
# The format is: YYYY-MM-DD HH:MM:SS
# The above line schedules the task to run once per day at midnight.

Persistent=true

[Install]
WantedBy=timers.target

3. Habilita e inicia el temporizador

Ejecuta los siguientes comandos para recargar systemd, habilitar el temporizador e iniciarlo de inmediato:

sudo systemctl daemon-reload
sudo systemctl enable --now daily-script.timer

Cómo comprobar el estado y los registros

Una vez configurado tu temporizador, puedes supervisar su estado y sus registros con los siguientes comandos:

  • Comprobar los temporizadores activos:
systemctl list-timers
  • Ver los detalles del temporizador:
systemctl status daily-script.timer
  • Consultar los registros de la ejecución del script:
journalctl -u daily-script.service

Referencias

  1. Documentación oficial de systemd:
    https://www.freedesktop.org/software/systemd/man/systemd.timer.html
    Esta es la documentación oficial de los temporizadores de systemd, con la sintaxis, las opciones y ejemplos detallados.
  2. Arch Wiki sobre temporizadores de systemd:
    https://wiki.archlinux.org/title/Systemd/Timers
    Una guía elaborada por la comunidad, con ejemplos prácticos y consejos para solucionar problemas.
  3. Documentación de Red Hat sobre temporizadores de systemd:
    https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/system_administrators_guide/chap-managing_services_with_systemd#sect-Managing_Timers
    Una explicación detallada de los temporizadores de systemd para uso empresarial.
  4. Wiki de ayuda de la comunidad de Ubuntu:
    https://help.ubuntu.com/community/systemd
    Esta página ofrece una visión general de systemd e incluye información sobre los temporizadores.

Resumen

Los temporizadores de systemd son una solución robusta y moderna para automatizar tareas en Linux. Ofrecen mayor fiabilidad, control e integración con systemd que los trabajos cron. Con solo crear una unidad de servicio y una unidad de temporizador sencillas, puedes automatizar tareas como copias de seguridad, sincronización, trabajos de limpieza y mucho más. Tanto si gestionas un servidor personal como una infraestructura empresarial, los temporizadores de systemd son una herramienta esencial para una automatización eficiente en Linux.

Deja un comentario