Syntaxe de Crontab

Avant de configurer des tâches cron, il est essentiel de comprendre la syntaxe et le format de cron pour garantir l'exécution fluide du script. La syntaxe crontab englobe cinq champs, chacun acceptant des valeurs spécifiques

            # ┌───────────── minute (0 - 59)
            # │ ┌───────────── heure (0 - 23)
            # │ │ ┌───────────── jour du mois (1 - 31)
            # │ │ │ ┌───────────── mois (1 - 12)
            # │ │ │ │ ┌───────────── jour de la semaine (0 - 6) (dimanche à samedi)
            # │ │ │ │ │
            # │ │ │ │ │
            # │ │ │ │ │
            # * * * * * [commande à exécuter]
  1. Minute : Indique la minute de l'heure pour l'exécution de la commande, allant de 0 à 59.
  2. Heure : Spécifie l'heure pour l'exécution de la commande au format 24 heures (0-23).
  3. Jour : Définit la date du mois pour l'exécution de la commande, allant de 1 à 31.
  4. Mois : Détermine le mois pour l'exécution de la commande, allant de 1 à 12 / JAN-DEC (représentant janvier à décembre).
  5. Jour de la semaine : Définit le jour de la semaine pour l'exécution de la commande, allant de 0 à 6 / DIM-SAM, où 0 représente dimanche-samedi, et dans certains systèmes, 7 représente dimanche.

Outre la compréhension de la syntaxe, la familiarité avec les opérateurs de tâches cron est impérative pour modifier les valeurs dans chaque champ:

  • Asterisk (*) : Représente toutes les valeurs possibles dans un champ. Par exemple, utiliser * dans le champ Minute planifie l'exécution de la tâche cron toutes les minutes.
  • Virgule (,) : Un opérateur pour énumérer plusieurs valeurs. Par exemple, écrire 1,5 dans le champ jour-de-la-semaine planifiera l'exécution de la tâche chaque lundi et vendredi.
  • Tiret (-) : Spécifie une plage de valeurs. Par exemple, utiliser 6-9 dans le champ Mois configure une tâche cron de juin à septembre.
  • Séparateur (/) : Divise une valeur. Pour exécuter un script toutes les douze heures, utilisez */12 dans le champ Heure.
  • Dernier (L) : Utilisé dans les champs jour-du-mois et jour-de-la-semaine, où, par exemple, 3L dans le champ jour-de-la-semaine signifie le dernier mercredi du mois.
  • Jour de la semaine (W) : Détermine le jour de la semaine le plus proche à partir d'une heure donnée. Par exemple, 1W dans le champ jour-du-mois exécutera la commande le lundi, le 3, si le 1er du mois tombe un samedi.

Chaînes Spéciales de Tâches Cron

Des chaînes spéciales sont utilisées pour planifier rapidement des tâches cron à certains intervalles de temps sans spécifier les valeurs exactes. Pour les utiliser, écrivez une simple phrase commençant par un @. Voici quelques chaînes spéciales utiles à utiliser dans les commandes :

  • @hourly : La tâche s'exécutera une fois par heure.
  • @daily / @midnight : Ces chaînes exécuteront la tâche chaque jour à minuit.
  • @weekly : Une chaîne pour planifier des tâches une fois par semaine à minuit le dimanche.
  • @monthly : Cette chaîne spéciale exécute une commande une fois le premier jour de chaque mois.
  • @yearly : Utilisez cette chaîne pour exécuter une tâche une fois par an à minuit le 1er janvier.

Exemples de Crontab

Dans la syntaxe cron, l'astérisque (*) signifie "chaque", donc les chaînes cron suivantes sont valides :

  • Exécuter une fois par heure au début de l'heure : 0 * * * *
  • Exécuter une fois par jour à minuit : 0 0 * * *
  • Exécuter une fois par semaine à minuit le dimanche matin : 0 0 * * 0
  • Exécuter une fois par mois à minuit le premier jour du mois : 0 0 1 * *
  • Exécuter une fois par mois le 22e : 0 0 22 * *
  • Exécuter une fois par mois le 2e lundi : 0 0 * * 1#2
  • Exécuter une fois par an à minuit le 1er janvier : 0 0 1 1 *
  • Exécuter tous les deux dimanches à 09h00 : 0 9 * * dim/2
  • Exécuter deux fois par mois à 3h00, les 1er et 15 du mois : 0 3 1,15 * *