Cron est un démon de planification qui utilise un format spécifique pour exécuter des tâches. Voici comment l'utiliser sous Linux pour l'exécution automatique des tâches.
Cron est l'un des utilitaires les plus utiles que vous puissiez trouver et utiliser dans n'importe quel système d'exploitation Linux ou Unix. L'utilisation du cron est un moyen courant d'exécuter périodiquement des tâches telles que des commandes ou des scripts shell. Ces tâches périodiques sont également appelées tâches cron et sont planifiées pour s'exécuter à une heure précise.
Par exemple, vous pouvez définir une tâche cron pour automatiser les tâches répétitives telles que la sauvegarde d'une base de données ou de données, la mise à jour du système avec les derniers correctifs de sécurité, l'envoi d'e-mails, etc.
Cron est nommé d'après le mot grec "Chronos" qui est utilisé pour le temps. Ce guide explique comment planifier des tâches avec crontab et comment utiliser le format de syntaxe spécial de cron pour les exécuter.
Qu'est-ce que le fichier crontab ?
Surtout, le fichier crontab est un simple fichier texte contenant une liste de commandes destinées à être exécutées à des moments précis. Il est édité à l'aide de la crontab
commande. Les commandes du fichier crontab (et leurs durées d'exécution) sont vérifiées par le démon cron, qui les exécute en arrière-plan du système.
Chaque ligne d'un fichier crontab est soit "active" soit "inactive". Une ligne "active" est un paramètre d'environnement ou une entrée de commande cron. Une ligne "inactive" est tout ce qui est ignoré, y compris les commentaires.
Les lignes vides, les espaces et les tabulations de début sont ignorés. Lignes dont le premier caractère autre qu'un espace est un signe dièse (#
) sont interprétés comme des commentaires et sont ignorés.
Veuillez noter que les commentaires ne sont pas autorisés sur la même ligne que les commandes cron, car ils seront interprétés comme faisant partie de la commande. Pour la même raison, les commentaires ne sont pas autorisés sur la même ligne que les paramètres des variables d'environnement.
Entrées de format de tâche Cron
Chaque entrée d'un fichier crontab se compose de six champs, spécifiant dans l'ordre suivant :
minute hour day month weekday command
Champ | Valeurs possibles | Syntaxe | Description |
---|---|---|---|
Minute | 0 – 59 | 11 * * * * | La tâche cron est lancée chaque fois que l'horloge système affiche 11 dans la position des minutes. |
Heure | 0 – 23 | 0 1 * * * | La tâche cron s'exécute à chaque fois que l'horloge système affiche 1h du matin (13h serait codé comme 13). |
Jour | 0 – 31 | 0 0 19 * * | Le jour du mois est le 19, ce qui signifie que la tâche s'exécute tous les 19 jours du mois. |
Mois | 0 =aucun et 12 =décembre | 0 0 0 7 * | Le mois numérique est 7, ce qui détermine que la tâche ne s'exécute qu'en juillet. |
Jour de semaine | 0 =dimanche et 7 =dimanche | 0 0 * * 1 | 1 dans la position actuelle signifie que le travail ne serait exécuté que le lundi. |
Commande | Spécial | La séquence complète des commandes à exécuter. Les commandes, les exécutables (tels que les scripts) ou les combinaisons sont acceptables. |
Chacun de ces champs peut être défini sur un astérisque (*
) , qui signifie « du premier au dernier ». Par exemple, pour exécuter une tâche toutes les heures, mettez *
dans le champ heure.
Des plages de nombres sont également autorisées. Les plages sont constituées de deux nombres séparés par un trait d'union (-
). La plage spécifiée est inclusive. Par exemple, 8-11
pour une entrée "heures" spécifie l'exécution à heures 8
, 9
, 10
, et 11
.
Les listes sont autorisées. Une liste est un ensemble de nombres (ou plages) séparés par des virgules (,
). Voici quelques exemples :1,2,5,9
ou 0-4,8-12
.
Les étapes sont également autorisées après un astérisque , donc si vous voulez dire "toutes les deux heures", vous pouvez utiliser */2
.
Le démon cron vérifie la crontab une fois par minute. Les commandes sont exécutées par cron lorsque les champs minute, heure et mois correspondent à l'heure actuelle et qu'au moins l'un des deux champs jour (jour du mois ou jour de la semaine) correspond au jour actuel.
Format de syntaxe spéciale de Cron
Les tâches Cron offrent également des chaînes spécialement formatées, qui peuvent être utilisées à la place des cinq champs d'heure et de date. Ce sont essentiellement des raccourcis pour l'horaire numérique équivalent spécifié :
chaîne | Msens |
---|---|
@reboot | Exécute la commande spécifiée une fois, au démarrage . |
@annuel, @annuel | Les deux exécutent la tâche spécifiée chaque année à 12h00 le 1er janvier. Cela équivaut à spécifier "0 0 1 1 *" dans le fichier crontab. |
@mensuel | Exécute la tâche une fois par mois , le 1er, à 00h00. Dans la syntaxe standard de cron, cela équivaut à "0 0 1 * *" |
@hebdomadaire | Exécute la tâche une fois par semaine à 12h00 le dimanche. Dans la syntaxe standard de cron, cela équivaut à "0 0 * * 0" |
@quotidien, @minuit | Les deux exécutent la tâche cron tous les jours à 12h00. Cela équivaut à spécifier "0 0 * * *" dans le fichier crontab. |
@horaire | Exécute la tâche en haut de toutes les heures . Dans la syntaxe standard de cron, cela équivaut à "0 * * * *" |
Comment utiliser la commande crontab
La crontab
La commande crée un fichier crontab contenant des commandes et des instructions en utilisant un format de travail cron spécifique pour que le démon cron s'exécute. Vous pouvez utiliser le crontab
commande avec les options suivantes :
Commande | Description |
---|---|
crontab -e | Modifier votre fichier crontab ou créez-en un s'il n'existe pas déjà. |
crontab -l | Afficher votre fichier crontab. |
crontab -r | Supprimer votre fichier crontab. |
crontab -u utilisateur | Utilisée en conjonction avec d'autres options, cette option vous permet de modifier ou de visualiser le fichier crontab de l'utilisateur. Seuls les administrateurs peuvent utiliser cette option. |
Par exemple, pour modifier ou créer votre propre fichier crontab, tapez la commande suivante à l'invite du shell :
crontab -e
Il n'est pas nécessaire de redémarrer cron après avoir modifié le fichier crontab. Cron examinera l'heure de modification sur tous les crontabs et rechargera ceux qui ont changé.
Comment modifier un fichier crontab appartenant à un autre utilisateur
Pour modifier le fichier crontab qui appartient à root ou à un autre utilisateur, vous devez devenir root. Bien sûr, vous n'avez pas besoin d'être root pour modifier votre fichier crontab.
crontab -u [username] -e
Comment supprimer un fichier crontab
La plupart du temps, vous ne voudrez pas supprimer le fichier crontab. Cependant, vous souhaiterez peut-être supprimer certaines lignes du fichier crontab.
Pour supprimer le fichier crontab de votre utilisateur, exécutez la commande suivante :
crontab -r
Exemples de tâches Cron
Commande | Tâche Cron |
---|---|
* * * * * /root/script.sh | Exécutez la tâche Cron toutes les minutes. |
0 * * * * /racine/script .sh | Exécutez la tâche Cron toutes les heures. |
0 0 * * * /racine/script .sh | Exécutez la tâche Cron tous les jours à minuit. |
0 2 * * * /racine/script .sh | Exécutez la tâche Cron à 2h du matin tous les jours. |
0 0 15 * * /racine/script .sh | Exécutez la tâche Cron tous les 15 du mois à minuit. |
0 0 0 12 * /racine/script .sh | Exécutez la tâche Cron le 1er décembre à minuit. |
0 0 * * 6 /racine/script .sh | Exécutez la tâche Cron le samedi à minuit. |
0 15 * * 1-5 /root/script.sh | Exécutez la tâche Cron à 15h00 tous les jours du lundi au vendredi. |
*/5 * * * * /root/script.sh | Exécutez la tâche Cron toutes les 5 minutes. |
0 8-16 * * * /root/script.sh | Exécutez une tâche Cron tous les jours, toutes les heures, toutes les heures, de 8 h 00 à 16 h 00. |
0 4 * * 2,4 /root/script.sh | Exécutez la tâche Cron à 4 h 00 le mardi et le jeudi. |
@reboot /root/script.sh | Exécutez la tâche Cron au démarrage du système. |
Conclusion
Vous avez maintenant une bonne compréhension de l'utilisation du format de tâche cron pour planifier des tâches sous Linux. Utilisez les exemples présentés dans ce guide pour créer et planifier des tâches cron sur votre système. En combinaison avec des scripts shell, vous pouvez automatiser des tâches normalement fastidieuses ou compliquées.
Pour plus d'informations, les pages de manuel cron et crontab ici et ici contiennent d'excellentes informations et descriptions sur le fonctionnement du système cron.