GNU/Linux >> Tutoriels Linux >  >> Linux

Cronjob exécuté toutes les deux semaines, le samedi, à partir de ce samedi

Solution 1 :

0 8 * * 6 test $((10#$(date +\%W)\%2)) -eq 1 && yourCommand

date +%W :numéro de semaine de l'année avec lundi comme premier jour de la semaine, aujourd'hui semaine 39

10#$(date +%W) :convertir le date +W en nombre décimal et éviter toute confusion d'analyse de la base du shell

$((39%2)) :opération modulo :le résultat est 0 (semaine paire) ou 1 (semaine impaire), cette semaine le résultat est 1, la semaine prochaine 0

test 1 -eq 1 :test arithmétique (égal), dans ce cas le résultat est booléen vrai

&& yourCommand :ET booléen :exécuter yourCommand uniquement si le résultat de la commande précédente était booléen vrai

Notez que l'année peut avoir deux semaines impaires :53 (cette année) et 1 (l'année prochaine)

Solution 2 :

Ce que vous avez montré est "chaque semaine". Alors le code est :

0 8 * * 6

Êtes-vous sûr de devoir l'exécuter toutes les deux semaines ?

0 8 * * 6 expr `date +\%s` / 604800 \% 2 >/dev/null || yourCommand

Linux
  1. Comment exécuter Cron toutes les 5 minutes, secondes, heures, jours, mois

  2. Comment exécuter à plusieurs reprises un script bash toutes les N secondes ?

  3. Quel est ce nouveau système de fichiers /run ?

  4. CronJob toutes les 25 minutes

  5. Comment exécuter une tâche cron à une heure précise chaque jour ?

Comment exécuter ou répéter une commande Linux toutes les X secondes pour toujours

Comment exécuter des tâches Cron toutes les 5, 10 ou 15 minutes

Comment exécuter une commande Linux toutes les X secondes pour toujours

Comment exécuter une tâche Crontab chaque semaine le dimanche

Comment puis-je exécuter une tâche cron toutes les 30 minutes ?

Transfert IP =quand et pourquoi est-ce nécessaire ?