0 0 1 1 *Campos
| Minuto | 0 | 0 |
|---|---|---|
| Hora | 0 | 0 |
| Día del mes | 1 | 1 |
| Mes | 1 | 1 |
| Día de la semana | * | cualquiera |
Dónde usarla
| crontab | 0 0 1 1 * /path/to/script.sh |
|---|---|
| GitHub Actions | - cron: "0 0 1 1 *" (on.schedule) |
| Kubernetes CronJob | schedule: "0 0 1 1 *" |
crontab usa la zona horaria del servidor; GitHub Actions siempre usa UTC.
A tener en cuenta
0 0 1 1 * se ejecuta una vez al año a medianoche del 1 de enero, igual que @yearly y @annually. Las tareas tan poco frecuentes son difíciles de probar y fáciles de olvidar: para el próximo enero, el script, sus credenciales o el propio servidor pueden haber cambiado. Ejecútala a mano una vez después de instalarla, y añade una monitorización que avise si no se registra ninguna ejecución correcta en un año y un día.
Puede que la hora del servidor no coincida con el año tal como lo entiende tu negocio: en un servidor en UTC se dispara a la 01:00 en Europa central y a las 19:00 del 31 de diciembre en Nueva York. Si la máquina está apagada en ese momento, cron no recupera la ejecución, mientras que anacron o un timer de systemd con Persistent=true sí lo hacen. Para ejecuciones trimestrales, usa 0 0 1 1,4,7,10 * o su equivalente 0 0 1 */3 *.