No, afaik, no puedes hacer eso.
Los campos cron contienen los valores de minutos, horas, día del mes, mes y día de la semana, respectivamente.
10 5 10 * * means run at 5:10 on every 10th of every month.
10 5 * 12 * means run at 5:10 on every day in december
10 5 * * 1 means run at 5:10 every Monday
Puede hacer que se ejecute en una serie de meses específicos, ya que el formato crontab acepta rangos. Abril a diciembre sería 4-12 en ese caso para el campo del mes. Pero eso no tiene en cuenta su deseo de tener esto limitado a 2009.
No hay ningún mecanismo para establecer las fechas de inicio y detención de cronjob. Siempre puedes escribir esto por supuesto. Haga que cronjob se ejecute todos los días y verifique que la fecha actual sea anterior al 30/12. Si es 31/12, haz que se elimine solo. O algo más pensado.
Un crontab de
0 7 * * 6-12 command_X
haría lo que quiere parcialmente, pero que comenzaría a funcionar 1 de junio y hasta el 31 de diciembre. Saltarse la primera parte de junio y el 31 de diciembre tendría que estar escrito en el comando X.
Tendría que estar en desacuerdo, aunque depende ligeramente de si se supone que el programa servirá para un propósito distinto a cuando se ejecuta a través de cron (y los geeks de Unix sí lo hacen). Si sirve para un propósito general, entonces construir en un arcano conjunto de reglas para decidir cuándo se debe ejecutar o analizar un archivo de configuración es una exageración seria y no recomendada (a menos que, tal vez, ya tenga herramientas en su biblioteca para hacer el comprobación). ¡Es mucho mejor dejar que 'cron' o una variante se ocupen de eso! –
En realidad, estaba buscando la manera de hacer funcionar un cron hasta una fecha de vencimiento, tal vez creando un segundo trabajo para eliminar ambos, hasta que coloreé sus palabras sobre "el guión decide por sí mismo si debería o no hacer algo útil". En lugar de crear muchos trabajos, crearé uno para llamar a mi script todos los días y decidirá si hay algo que hacer. – StackUnder