0 0 * * 0Campos
| Minuto | 0 | 0 |
|---|---|---|
| Hora | 0 | 0 |
| Día del mes | * | cualquiera |
| Mes | * | cualquiera |
| Día de la semana | 0 | 0 |
Dónde usarla
| crontab | 0 0 * * 0 /path/to/script.sh |
|---|---|
| GitHub Actions | - cron: "0 0 * * 0" (on.schedule) |
| Kubernetes CronJob | schedule: "0 0 * * 0" |
crontab usa la zona horaria del servidor; GitHub Actions siempre usa UTC.
A tener en cuenta
0 0 * * 0 se ejecuta a medianoche al empezar el domingo, justo después de que termine el sábado. Si te referías al domingo por la noche, el final de la semana, usa 0 23 * * 0, o 0 0 * * 1 para el lunes a las 00:00. Tanto 0 como 7 significan domingo en Vixie cron y cronie, y @weekly equivale a 0 0 * * 0. Los planificadores basados en Quartz numeran los días del 1 al 7 con el domingo como 1, así que compruébalo antes de copiar.
Las tareas semanales fallan sin hacer ruido: si el servidor estaba caído a medianoche del domingo, cron no recupera la ejecución y esperas otra semana, mientras que anacron o un timer de systemd con Persistent=true ejecutan las tareas perdidas tras el arranque. El mantenimiento semanal suele alargarse, así que usa flock -n, registra la salida y añade un monitor de heartbeat. Para ejecutar un domingo sí y otro no, comprueba el número de semana con date +\%V dentro del comando.