Crontab / Running cronjob el primer domingo del mes

Posible duplicado:
cron: cómo progtwigr para correr el primer domingo de cada mes

Quiero ejecutar un script php cada primer domingo del mes a las 7 a. M. Ingresé a la siguiente línea en el crontab de los servidores.

0 7 1-7 * 0 user /path/to/script.php 

Hoy vi que el guión se ejecutó el miércoles por la mañana. ¿Cómo pudo suceder eso? Pensé que el último 0 define el domingo?

Gracias por su ayuda en avanzado.

Solutions Collecting From Web of "Crontab / Running cronjob el primer domingo del mes"

Desde la página man:

Los comandos son ejecutados por cron (8) cuando los campos de minuto, hora y mes del año coinciden con la hora actual, y cuando al menos uno de los dos campos del día (día del mes o día de la semana) coincide con la hora actual (ver “ Nota ” a continuación).

y después:

Nota: El día de la ejecución de un comando puede especificarse mediante dos campos: día del mes y día de la semana. Si ambos campos están restringidos (es decir, no son *), el comando se ejecutará cuando cualquier campo coincida con la hora actual. Por ejemplo, “ 30 4 1,15 * 5 ” provocaría que se ejecutara un comando a las 4:30 a.m. los días 1 y 15 de cada mes, más todos los viernes.

En otras palabras, su secuencia de comandos se ejecuta del 1 al 7, así como cualquier domingo.

Los campos 3 y 5 no funcionan juntos como supones.

Tendrá que establecer el campo 5 en * y modificar su script php para comprobar si el día actual es un domingo antes de que continúe.

Su especificación cron sale a esto:

 0 - run at minute 0 7 - run at hour 7 1-7 - run on days 1,2,3,4,5,6,7 * - all months 0 - day 0 of the week 

No creo que pueda restringirlo solo al primer tipo de día a través de las herramientas disponibles en cron. Tu podrías intentar

 0 7 * * 0 

que se ejecuta todos los domingos, pero no hay un método para decir “solo el primer domingo”, por lo que esto se ejecutaría todos los domingos. Sin embargo, puede modificar su secuencia de comandos para verificar qué domingo se está ejecutando, y simplemente salir si no es el primero.