OnCalendar= define cuándo se activa un .timer de systemd usando expresiones de calendario. Va dentro del archivo .timer, no dentro del .service.
<aside>
💡 Los timers no siempre disparan exactamente en el segundo indicado: AccuracySec= puede agrupar ejecuciones para ahorrar recursos. Valida expresiones con systemd-analyze calendar.
</aside>
OnCalendar=CALENDAR_EXPRESSION
Puedes usar fecha, hora, día de la semana o combinaciones.
| Expresión | Significado |
|---|---|
OnCalendar=*:03 |
Cada hora, en el minuto 3 |
OnCalendar=*-*-* *:00:00 |
Cada hora en punto |
OnCalendar=*-*-* *:*:00 |
Cada minuto, al segundo 0 |
OnCalendar=Mon..Fri 09:00 |
De lunes a viernes a las 09:00 |
OnCalendar=Sun 18:00 |
Domingos a las 18:00 |
OnCalendar=*-*-01 00:00 |
Día 1 de cada mes a medianoche |
OnCalendar=*-*-* 00/2:00:00 |
Cada 2 horas |
OnCalendar=*:0/5 |
Cada 5 minutos |
| Recurso | Qué hace | Ejemplo |
|---|---|---|
* |
Cualquier valor | *-*-* |
/ |
Intervalo | 00/2:00:00 |
.. |
Rango | Mon..Fri |
, |
Lista | Mon,Wed,Fri |
Ejemplo combinado:
OnCalendar=Mon..Fri *-*-* 09..17:00/15
Lunes a viernes, de 09:00 a 17:00, cada 15 minutos.
systemd-analyze calendar 'Mon..Fri 09:00'
systemd-analyze calendar '*-*-* *:0/5'
systemd-analyze calendar '*-*-01 00:00'
El comando muestra la forma normalizada y la próxima ejecución calculada.