Qué resuelve

Crear un .timer de systemd para ejecutar un .service por calendario o intervalo, con activación, validación y debugging.


Idea base

Un timer normalmente activa un servicio con el mismo nombre:

mi-job.timer -> mi-job.service

El .timer decide cuándo. El .service decide qué ejecutar.


Servicio asociado

Archivo:

/etc/systemd/system/mi-job.service

Contenido:

[Unit]
Description=Ejecuta mi job programado

[Service]
Type=oneshot
User=deploy
WorkingDirectory=/opt/mi-job
ExecStart=/opt/mi-job/run.sh

Timer cada 5 minutos

Archivo:

/etc/systemd/system/mi-job.timer

Contenido:

[Unit]
Description=Ejecuta mi job cada 5 minutos

[Timer]
OnCalendar=*:0/5
Persistent=true

[Install]
WantedBy=timers.target

Validar expresión: