Hay dos campos para indicar el dia en la crontab, uno que es el día del mes (tercer campo) y otro que es el día de la semana (quinto campo). Estos campos tienen un comportamiento diferente si se indica '*' o se pone un rango, es decir, si se restringen ambos.
Por ejemplo:
- 59 15 * 2 1-5 usuario comando
- 59 15 1-15 2 * usuario comando
- 59 15 1-15 2 1-5 usuario comando
En el propio manual de la crontab lo indican con una breve nota, pero nunca me fijé en ella :-(
Note: The day of a command's execution can be specified by two fields — day of month, and day of week. If both fields are restricted (i.e., aren't *), the command will be run when either field matches the current time.
Con lo que en principio no es posible decir en la crontab que un comando se ejecute unos X días de la semana durante Y días del mes. Pero hay truco, es posible hacerlo modificando la invocación del comando con un condicional de la shell para que haga una comprobación de fechas y luego ejecute el comando con el operador &&, aunque tan elegante no queda.
- 59 15 * 2 1-5 usuario [ $(date +%d) -le 15 ] && comando
No hay comentarios:
Publicar un comentario