0 9 * * 1-5Campos
| Minuto | 0 | 0 |
|---|---|---|
| Hora | 9 | 9 |
| Día del mes | * | cualquiera |
| Mes | * | cualquiera |
| Día de la semana | 1-5 | 1, 2, 3, 4, 5 |
Dónde usarla
| crontab | 0 9 * * 1-5 /path/to/script.sh |
|---|---|
| GitHub Actions | - cron: "0 9 * * 1-5" (on.schedule) |
| Kubernetes CronJob | schedule: "0 9 * * 1-5" |
crontab usa la zona horaria del servidor; GitHub Actions siempre usa UTC.
A tener en cuenta
0 9 * * 1-5 se ejecuta a las 09:00 de lunes a viernes; la mayoría de los cron también aceptan MON-FRI. La gran trampa es la zona horaria: un informe de las 9 de la mañana en un servidor en UTC llega a las 10:00 o a las 11:00 en Europa central según el horario de verano, y GitHub Actions siempre usa UTC. Fija la hora local con CRON_TZ=Europe/Warsaw en cronie, o con spec.timeZone en un CronJob de Kubernetes.
Cron no sabe nada de festivos, así que comprueba una lista de festivos dentro del script y sal antes. No combines el día del mes con el día de la semana para expresar “primer día laborable del mes”: cuando ambos campos están restringidos, cron se ejecuta si coincide cualquiera de los dos, así que 0 9 1 * 1-5 se dispara el día 1 y todos los días laborables. Para las 9:00 y las 17:00 en días laborables, escribe 0 9,17 * * 1-5.