A las 00:00, el día 1 del mes

0 0 1 * *

Campos

Minuto00
Hora00
Día del mes11
Mes*cualquiera
Día de la semana*cualquiera

Dónde usarla

crontab0 0 1 * * /path/to/script.sh
GitHub Actions- cron: "0 0 1 * *" (on.schedule)
Kubernetes CronJobschedule: "0 0 1 * *"

crontab usa la zona horaria del servidor; GitHub Actions siempre usa UTC.

A tener en cuenta

0 0 1 * * se ejecuta a medianoche el día 1 de cada mes, igual que @monthly. La facturación, las facturas y los informes mensuales suelen ir aquí, así que decide qué zona horaria define “el día 1”: en un servidor en UTC, en América todavía es el último día del mes anterior. Un informe del mes pasado debería calcular su rango de fechas a partir de la fecha de ejecución, nunca suponer 30 o 31 días.

Vixie cron y cronie no tienen sintaxis para el último día del mes; ejecuta con 0 0 28-31 * * y comprueba la fecha dentro del comando, por ejemplo test $(date -d tomorrow +\%d) = 01 && /path/to/script.sh. Quartz y algunos planificadores en la nube admiten L en su lugar. Cuidado con la regla del OR: 0 0 1 * 1 se ejecuta el día 1 y todos los lunes, no los lunes que caen en día 1.

Abrir Generador y explicador de expresiones cron