Afficher/cacher Sommaire
Executer cron un jour spécifique dans le mois (e.g. deuxième lundi)
Comment exécuter un cron sur un jour spécifique de la semaine une fois par mois ?
Ceci pourrait sembler simple au premier abord, puisque cette ligne pourrait semblait faire l’affaire :
# Run on every second Tuesday of the month
15 3 8-14 * 2 /usr/bin/bash /opt/myscriptfortuesday.sh
Mais ceci ne marcherait pas car le ‘2’ pour vérifier que nous sommes bien un mardi vient comme une condition OR, et donc la commande pourrait s’exécuter du jour 8 au jour 14 et tous les mardis du mois.
Pour contourner cela, vous pouvez utiliser cette commande :
# Run on every second Tuesday of the month
15 3 8-14 * * test $(date +\%u) -eq 2 && /usr/bin/bash /opt/myscriptfortuesday.sh
Voici l’explication de cette ligne de cron :
15 = 15th minute
3 = 3am
8-14 = between day 8 and day 14 (second week)
* = every month
* = every day of the week
test $(date +\%u) -eq 2 && /usr/bin/bash /opt/myscriptfortuesday.sh = the command to execute with a check on the date
En effectuant cette vérification, nous vérifions alors d’abord que nous sommes bien un mardi avant d’exécuter la commande. N’oubliez pas d’ajouter un antislash avant le caractère ‘%’ pour l’échapper.