Les concepts fondamentaux du planificateur et la structure à 5 champs
Cron est un planificateur de tâches basé sur le temps qui, sur les systèmes de type Unix et Linux, exécute automatiquement des commandes ou des scripts à des moments définis. On l'utilise pour programmer des tâches à répéter régulièrement, comme les sauvegardes, le nettoyage des journaux ou la synchronisation de données, sans avoir à les lancer manuellement à chaque fois.
La liste des tâches à exécuter est inscrite, à raison d'une par ligne, dans un tableau appelé crontab (cron table). Chaque ligne se compose d'une expression de planning indiquant quand exécuter et d'une commande indiquant quoi exécuter. L'expression de planning standard comporte 5 champs séparés par des espaces : minute (0-59) · heure (0-23) · jour (1-31) · mois (1-12) · jour de la semaine (0-6, 0=dimanche).
Par exemple, 30 9 * * 1-5 signifie « minute=30, heure=9, jour=tous, mois=tous, jour de la semaine=lundi à vendredi » et s'exécute donc en semaine à 9 h 30. * signifie « toutes les valeurs du champ », et une écriture comme */5 permet d'indiquer un intervalle, c'est-à-dire « tous les 5 ».
Le démon cron vérifie chaque minute toutes les expressions enregistrées et exécute les tâches dont l'heure correspond à l'instant présent. C'est pourquoi le plus petit intervalle possible avec cron est d'une minute. Si vous avez besoin d'un intervalle plus court, il faut boucler à l'intérieur du script ou utiliser une autre méthode.
Lorsque les expressions se complexifient, elles deviennent difficiles à lire à l'œil nu. En collant votre expression dans l'outil ci-dessus, vous obtenez une interprétation en phrases lisibles et un aperçu des prochaines exécutions, ce qui permet de vérifier immédiatement que le planning correspond à ce que vous vouliez.