Apartamento En Familia

Apartamento En Familia
Apartamento de playa para vacaciones. http://www.apartamentoenfamilia.es. Número registro HUTT-005768

jueves, 6 de noviembre de 2014

Crontab para ejecutarse el primer domingo de algunos meses

En el sistema operativo Unixcron es un administrador regular de procesos en segundo plano (demonio) que ejecuta procesos o guiones a intervalos regulares (por ejemplo, cada minuto, día, semana o mes). Los procesos que deben ejecutarse y la hora en la que deben hacerlo se especifican en el fichero crontab. El nombre cron viene del griego chronos (χρόνος) que significa "tiempo".
(Fuente Wikipedia)


Ahora me planteé como hacer que un script se ejecute el primer domingo de cada mes. Lo primero que se me vino a la cabeza es hacer esto:

0 19 1-7 * 0

Pero no funcionó como esperaba. Parece ser que la lógica que usa es la siguiente:
A las 19:00 se ejecuta los siete primeros días (del 1 al 7) y cada Domingo. 

Yo esperaba que se ejecutara solamente cuando se cumplieran ambas condiciones, no en las dos condiciones.  Así pues que lo que me queda es hacer un condicional en el mismo cron (eso o hacerlo en el script):

00 02 * 1,4,7,10 7 [ $(date -R | cut -f2 -d" ") -lt 8 ] &&  MiScript.sh

Esta linea lo que hará es que ejecutará a las 02:00 de los domingos de los meses enero, mayo, julio y octubre que el día del mes sea menor a 8, es decir, la primera semana del mes.



That u don't know what you've got 'til it's gone