¿Cómo hago que cron se ejecute cada dos domingos el OTRO domingo?

10

Tengo un trabajo cron que se ejecuta en 0 0 * * 0/2, es decir, cada dos domingos. Simplemente se ejecutó ahora, por ejemplo. Sin embargo, quiero que se ejecute los otros domingos, el próximo domingo, en lugar de este. Otra forma de decirlo: supongo que se ejecuta los domingos pares del año, pero quiero que se ejecute los domingos impares.

No veo nada en "man 5 crontab" que me ayude con esto, así que supongo que necesito volver a ejecutar el cronjob en 0 0 * * 0 y luego hacer algo en el comando que ejecuto para verificar qué domingo es. ¿Alguien puede ayudarme con algún truco de línea de comando adecuado para esto?

ETA: me he dado cuenta de que mi 0/2 no hace lo que pensaba originalmente (cada segundo domingo) en absoluto. Funciona todos los domingos, siempre y cuando ese día de la semana sea divisible por dos, lo que por supuesto es. D'oh De todos modos, el requisito fundamental sigue siendo: ejecutar un comando los domingos impares.

Skud
fuente
¿"impar" como en "El primer, tercer y quinto domingo"?
voretaq7
1
No, como en la 1ra, 3ra, 5ta, 7ma, ... 49ma, 51ma semana del año. En otras palabras, quincenalmente, los domingos que caen en semanas impares del año.
Skud
Lo siento, cron no lo hará por ti. Necesitará que su script verifique si es la semana adecuada para usted. (Además, si te acuerdas de mí desde cierto lugar - ¡Hola! Olas )
Jenny D

Respuestas:

3

No pretendo haber intentado esta tarea en particular, pero esta pregunta de desbordamiento de pila tiene algunas respuestas que muestran posibles trucos en la línea de comandos: /programming/350047/how-to-instruct-cron-to- ejecutar un trabajo cada dos semanas

nmjk
fuente
Ninguno de ellos hace que cron se ejecute en las semanas impares. Todos simplemente hacen el uno al otro. Algunas de maneras extremadamente exóticas y "creativas" que tampoco recomendaría.
Chris S
La respuesta mejor votada se ejecuta cada semana y luego se basa en el truco de la línea de comando para determinar si es la semana apropiada.
nmjk
1
Sí, pero es el módulo 2, lo que significa que se ejecutará en las semanas pares. Es posible apilar varios evalbloques para agregar uno y luego hacer el módulo 2. Eso es feo en el mejor de los casos, pero supongo que podría funcionar.
Chris S
1
De la respuesta vinculada, parece que tiene potencial: date +\%W\% 2> / dev / null || lo que sea ... Sin embargo, para obtener los impares semanas numeradas, yo quiero hacer "lo que sea &&" en lugar de ||
Skud
1
Entonces, pidiendo aclaraciones. ¿Desea determinar "cada semana impar" contando por semana del año o contando por semana del mes? Estoy bastante seguro de que esto último es posible, pero tendría que encontrar algunos fragmentos antiguos que he usado en el pasado.
nmjk