Cron : Exécuter une tâche le deuxième ou troisième dimanche du mois

Ayant du mettre en place des scripts pour un client qui ne devaient s’exécuter que le deuxième dimanche de chaque mois pour l’un, et le troisième dimanche pour l’autre, je me suis dis que j’allais partager cette astuce.

Voici donc des exemples à ajouter à votre crontab si vous souhaitez réaliser ce cas :

2eme dimanche :

0 12 * * 0 [ $(date ‘+\%-d’) -ge 8 -a $(date ‘+\%-d’) -le 14 ] && sh /var/scripts/MonScript.sh>> /var/log/Mon_Log.txt

3eme dimanche :

0 12 * * 0 [ $(date ‘+\%-d’) -ge 15 -a $(date ‘+\%-d’) -le 21 ] && sh /var/scripts/MonScript.sh>> /var/log/Mon_Log.txt

Je me suis beaucoup inspiré de la page de Wikipedia sur la Crontab [link]. Dans le cas présent on lance le script tout les dimanches et nous vérifions que nous sommes bien susceptibles d’être le deuxième ou le troisième. Fort heureusement pour nous les fourchettes de dates ne se chevauchent pas ce qui nous aide grandement 🙂 Le pourcentage (%) doit être échappé (\) dans la crontab, mais pas si vous voulez le faire en ligne de commande pour tester. J’espère que cette astuce sera utile à d’autres.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *