La crontab pour les nuls

Affiner la période d’exécution d’une tâche

Maintenant que je vous ai montré la syntaxe d’une ligne de crontab, voici les variations qui existent pour affiner la période à laquelle vous souhaitez exécuter votre tâche :

  • Une étoile (*) à la place d’une valeur parmi mm hh jj MMM JJJ veut dire Tous. Cela signifie que la tâche doit être exécutée dans une intervalle de temps allant du minimum au maximum possible. Par exemple, si je mets une étoile dans MMM, cela veut dire que la tâche va s’exécuter dans l’intervalle janvier-décembre, donc toute l’année.
    • Exemple concret : 0 17 1 * * signifie que la tâche va s’effectuer seulement si à la fois l’horloge système indique 17h00 et si son calendrier lui indique qu’on est le 1er du mois, le tout dans l’intervalle janvier-décembre et dans l’intervalle dimanche-samedi (rappelez vous, les jours commençent par dimanche). En gros, la tâche sera effectuée tous les 1ers du mois à 17h00.
  • Un tiret () entre deux valeurs parmi mm hh jj MMM JJJ veut dire Intervalle. La tâche doit donc être exécutée dans une intervalle de temps donnée. Par exemple, si j’écris 3-7 dans jj, cela veut dire que la tâche devra s’exécuter tous les jours entre le 3 et le 7 du mois inclus.
    • Exemple concret : 15 9 3-7 * * signifie que la tâche va s’effectuer seulement si à la fois l’horloge système indique 9h15 et si son calendrier indique un jour compris entre le 3 et le 7 du mois inclus, le tout dans l’intervalle janvier-décembre et dans l’intervalle dimanche-samedi. En gros, la tâche sera effectuée chaque jour entre le 3 et le 7 inclus de chaque mois à 9h15.
  • Une virgule (,) entre plusieurs valeurs parmi mm hh jj MMM JJJ veut dire Suite de valeurs. Cela permet d’exécuter une tâche plusieurs fois aux temps indiqués. Par exemple, si j’écris 2,4,19 dans jj, la tâche sera exécutée les 2, 4 et 19 du mois.
    • Exemple concret : 5 13 4,7,9 mar * signifique que la tâche va s’effectuer seulement si à la fois l’horloge système indique 13h05 et si son calendrier indique le 4, 7 ou 9 mars, le tout dans l’intervalle dimanche-samedi. En gros, la tâche sera effectuée le 4, 7 et 9 mars à 13h05.
  • Une barre oblique ou slash (/) entre deux valeurs parmi mm hh jj MMM JJJ veut dire Diviser. La tâche sera donc exécutée une fois toutes les n intervalles. Imaginons que je veuille qu’une tâche s’exécute toutes les 2 heures à la 30ème minute le 28 février, j’écris alors 30 */2 28 feb *. Le */2 signifie que la tâche sera exécutée une fois sur deux toutes les heures, donc toutes les 2h.

Cryonid

Freedom and privacy is what I'm fighting for.

1 réponse

  1. Benoît dit :

    Bonsoir,
    Merci pour cet article très intéressant et complet.

Laisser un commentaire

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.