¿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.


¿"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


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.