Comment puis-je faire fonctionner cron un dimanche sur deux les AUTRES dimanches?

10

J'ai un travail cron qui fonctionne à 0 0 * * 0/2 - c'est-à-dire tous les deux dimanches. Il vient de fonctionner, par exemple. Cependant, je veux qu'il fonctionne les autres dimanches - dimanche prochain, plutôt que celui-ci. Une autre façon de le dire: je présume qu'il fonctionne les dimanches pairs de l'année, mais je veux qu'il fonctionne les dimanches impairs.

Je ne vois rien dans "man 5 crontab" qui pourrait m'aider avec cela, donc je suppose que je dois revenir à l'exécution du cronjob à 0 0 * * 0 puis faire quelque chose dans la commande que je lance pour vérifier quel dimanche il est. Quelqu'un peut-il m'aider avec une astuce de ligne de commande appropriée pour cela?

ETA: j'ai réalisé que mon 0/2 ne faisait pas du tout ce que je pensais à l'origine (un dimanche sur deux). Il fonctionne tous les dimanches, tant que ce jour de la semaine est divisible par deux, ce qui est bien sûr le cas. D'oh. Quoi qu'il en soit, l'exigence fondamentale demeure: exécuter une commande les dimanches impairs.

Skud
la source
"impaire" comme dans "Le premier, le troisième et le cinquième dimanche"?
voretaq7
1
Non, comme les 1ère, 3ème, 5ème, 7ème, ... 49ème, 51ème semaine de l'année. En d'autres termes, tous les quinze jours, les dimanches qui tombent en semaines impaires de l'année.
Skud
Désolé - cron ne fera pas ça pour vous. Vous devrez faire vérifier votre script si c'est la bonne semaine pour vous. (Aussi, si vous vous souvenez de moi d'un certain endroit - HI HI vagues )
Jenny D

Réponses:

3

Je ne prétendrai pas avoir tenté cette tâche particulière moi-même, mais cette question de débordement de pile contient des réponses qui montrent une ruse potentielle en ligne de commande: /programming/350047/how-to-instruct-cron-to- exécuter un travail toutes les deux semaines

nmjk
la source
Aucun de ceux-ci ne fait fonctionner cron les semaines impaires. Ils font tout simplement les uns les autres. Certains de manière extrêmement exotique et "créative" que je ne recommanderais pas non plus.
Chris S
La réponse la plus votée semble s'exécuter chaque semaine, puis s'appuyer sur la ruse de la ligne de commande pour déterminer s'il s'agit de la semaine appropriée.
nmjk
1
Oui, mais c'est modulo 2, ce qui signifie qu'il va fonctionner les semaines paires. Il pourrait être possible d'empiler plusieurs evalblocs pour en ajouter un, puis de faire le modulo 2. C'est moche au mieux, mais je suppose que cela pourrait fonctionner.
Chris S
1
D'après la réponse liée, cela semble avoir un potentiel: date +\%W\% 2> / dev / null || tout ... Cependant, pour obtenir les impaires semaines numérotées, je veux faire « && tout » au lieu de ||
Skud le
1
Donc, demander des éclaircissements. Voulez-vous déterminer «chaque semaine impaire» en comptant par semaine de l'année ou en comptant par semaine de mois? Je suis à peu près sûr que ce dernier est possible, mais je devrais trouver de vieux extraits que j'ai utilisés dans le passé.
nmjk