GNU/Linux >> Tutoriels Linux >  >> Linux

Comment demander à cron d'exécuter une tâche toutes les deux semaines ?

Répondre

Modifiez votre logique cron du mardi pour qu'elle s'exécute toutes les deux semaines depuis l'époque .

Sachant qu'il y a 604800 secondes dans une semaine (en ignorant les changements d'heure d'été et les secondes intercalaires, merci), et en utilisant la date GNU :

0 6 * * Tue expr `date +\%s` / 604800 \% 2 >/dev/null || /scripts/fortnightly.sh

À part

L'arithmétique du calendrier est frustrante.

La réponse de @xahtep est formidable mais, comme @Doppelganger l'a noté dans les commentaires, elle échouera à certaines limites d'année. Aucun des date les spécificateurs "semaine de l'année" de l'utilitaire peuvent aider ici. Certains mardis de début janvier répéteront inévitablement la parité hebdomadaire du dernier mardi de l'année précédente :2016-01-05 (%V), 2018-01-02 (%U) et 2019-01-01 (%W) .


la réponse de Pilcrow est excellente. Cependant, il en résulte que le script quinze jours.sh s'exécute tous les même semaine (depuis l'époque). Si vous avez besoin que le script s'exécute sur odd semaines, vous pouvez modifier un peu sa réponse :

0 6 * * Tue expr \( `date +\%s` / 604800 + 1 \) \% 2 > /dev/null || /scripts/fortnightly.sh

Changer le 1 en 0 le ramènera aux semaines paires.


Qu'en est-il de cela, il le garde dans le crontab même s'il n'est pas exactement défini dans les cinq premiers champs :

0 6 * * Tue expr `date +\%W` \% 2 > /dev/null || /scripts/fortnightly.sh

Linux
  1. Comment mettre en place une tâche cron pour lancer un exécutable toutes les heures ?

  2. Comment exécuter le travail crontab chaque semaine le dimanche

  3. Comment configurer le travail CRON pour qu'il s'exécute toutes les 10 secondes sous Linux ?

  4. Comment configurer la tâche cron pour qu'elle s'exécute tous les 2 jours à 23h

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

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

Comment planifier une tâche dans Cron pour qu'elle s'exécute toutes les heures dans Ubuntu 20.04

Comment configurer une tâche Cron dans Debian 10

Comment configurer une tâche Cron dans cPanel

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

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