Offres d'été : Jusqu'à 80 % de remise Voir les offres

Qu’est-ce que la syntaxe Crontab ? Comprendre Crontab sous Linux grâce à des exemples pratiques

L’automatisation est un élément essentiel de tout système, qu’il s’agisse d’un serveur physique ou d’un serveur privé virtuel (VPS). Lorsqu’elle est correctement configurée, elle peut vous faire gagner des centaines d’heures et rendre votre flux de travail beaucoup plus efficace. L’un des principaux outils de planification des tâches est cron.

Dans ce tutoriel, nous allons expliquer la syntaxe Crontab, présenter les différences entre cron, une tâche cron et Crontab, puis illustrer leur utilisation à l’aide de quelques exemples pratiques sur un système Linux.

Présentation rapide de la syntaxe Crontab

Connaissances requisesConnaissances de base de la ligne de commande Linux et de la planification des tâches
Droits requisPrivilèges utilisateur : droits root pour certaines opérations
DifficultéDébutant 
Objectif principalComprendre et utiliser la syntaxe Crontab, configurer des tâches cron
Compatibilité avec les systèmes d’exploitationSystèmes basés sur Linux

Qu’est-ce que Crontab et qu’est-ce qu’une tâche cron ?

Lorsque l’on parle des tâches cron, il est important de distinguer les trois termes suivants :

Le daemon cron (crond), ou simplement cron, est un exécutable qui permet d’exécuter automatiquement des tâches à des moments précis.

Tâche cron – toute tâche planifiée à l’aide de cron est appelée une tâche cron.

Qu’est-ce que la syntaxe Crontab ?

La table cron, ou fichier crontab, contient toutes les planifications des tâches cron qu’un utilisateur souhaite exécuter régulièrement. Chaque commande est écrite sur une ligne distincte et indique au daemon cron d’exécuter une tâche à un moment précis.

Format et valeurs de la syntaxe Crontab

Pour que le daemon cron interprète correctement les instructions, il est indispensable d’utiliser une syntaxe Crontab valide. La syntaxe Crontab se compose de cinq champs. Chacun d’entre eux peut contenir l’une des valeurs indiquées dans le tableau suivant :

Champ Valeurs possibles
Minute0-59
Heure0-23
Jour du mois1-31
Mois1-12
Jour de la semaine0-6. Le chiffre 0 correspond au dimanche. Dans certains systèmes, c’est le chiffre 7 qui représente le dimanche à la place.
CommandeCommande à exécuter

En plus des valeurs possibles de la syntaxe Crontab, il convient également de connaître certains caractères spéciaux :

Symbole Signification Exemple
* (astérisque)Sélectionner toutes les valeurs possibles dans un champPlacez * dans le champ Heure pour exécuter la tâche toutes les heures.
, (virgule)On utilise une virgule pour séparer plusieurs valeurs0,3,5 dans le champ Jour de la semaine exécute la tâche le dimanche et le mercredi.
– (trait d’union)Permet de définir une plage de valeurs10-15 dans le champ Jour du mois exécute la tâche du 10 au 15 du mois.
/ (séparateur)On utilise un séparateur pour séparer les valeurs*/10 dans le champ Heure exécute la tâche toutes les 10 heures.
LUtilisé dans les champs Jour du mois et Jour de la semaine1L dans le champ Jour de la semaine exécute la tâche le dernier lundi du mois.
WW sert à déterminer le jour de la semaine le plus proche0W dans le champ Jour du mois exécute la tâche le dimanche le plus proche du mois.
# (dièse)Permet de déterminer le jour de la semaine2#3 dans le champ Jour du mois exécute la tâche le troisième mardi du mois.
? (point d’interrogation)Utilisé dans les champs Jour du mois et Jour de la semaine? dans le champ Jour du mois signifie qu’aucune valeur précise n’est définie.

Important

Important ! Tous les champs doivent être renseignés lors de la création d’une tâche cron. Si vous ne souhaitez pas définir une valeur pour un champ, utilisez le symbole * (astérisque).

Les commandes Crontab

Quelques commandes cron suffisent pour créer, supprimer et gérer les entrées cron en ligne de commande :

  • crontab -e – permet de modifier les fichiers crontab du système. Cette commande crée un nouveau fichier crontab s’il n’existe pas encore.
  • crontab -l – permet de consulter les entrées du fichier crontab (tâches cron) et d’afficher le contenu du fichier crontab du système.
  • crontab -r – supprime le fichier crontab actuel.
  • crontab -i – affiche une demande de confirmation avant de supprimer le fichier crontab d’un utilisateur. Il est fortement recommandé de l’utiliser avec l’option -r, soit sous la forme -ri.

Comment utiliser Crontab : exemples pratiques

Commencez par utiliser la commande crontab pour créer votre première entrée dans le fichier crontab :

crontab -e

On vous demandera de choisir un éditeur. Nous vous recommandons de choisir nano, la première option de notre exemple :

Fenêtre de terminal affichant la commande crontab -e, utilisée pour créer le fichier crontab principal et choisir l’éditeur à utiliser.

Vous serez ensuite redirigé vers le fichier crontab. Pour ajouter une nouvelle entrée, sélectionnez une nouvelle ligne, puis poursuivez la configuration de votre tâche cron.

Important

Important ! Gardez à l’esprit que crontab utilise la date et l’heure actuelles du système. Il utilise donc le même fuseau horaire que le système root.

Planifier une tâche à une heure précise

L’un des moyens les plus simples de tester cron consiste à planifier une tâche à une heure précise. Par exemple, la tâche cron suivante exécutera notre script .sh à la date et à l’heure indiquées, soit le 15 août à 15 h 30.

30 08 10 06 * cat /helloworld.sh

Afficher les entrées du fichier crontab

Toutes les tâches cron étant stockées dans un fichier crontab, vous pouvez consulter celles qui sont déjà configurées. Pour afficher le contenu de votre fichier crontab, exécutez la commande suivante :

crontab -l
Fenêtre de terminal affichant la commande crontab -l. Chaque nouvelle ligne ajoutée à ce fichier crée une nouvelle tâche cron qui exécutera la commande définie par l’utilisateur.

Modifier les entrées du fichier crontab

Pour modifier des entrées existantes dans le fichier crontab, utilisez la commande suivante :

crontab -e

Planifier une tâche toutes les minutes

Il est très simple de planifier une tâche qui s’exécute toutes les minutes. Dans l’exemple suivant, nous configurons l’exécution périodique de la commande cat :

* * * * * cat /home/helloworld.sh
Fenêtre de terminal avec l’éditeur nano ouvert. Le contenu d’un fichier crontab est affiché et la dernière ligne montre une tâche cron qui exécute notre script toutes les minutes.

Planifier une tâche quotidienne

Pour planifier une tâche qui s’exécute chaque jour, utilisez l’opérateur cron @daily :

@daily cat /home/helloworld.sh

Notez que le script sera exécuté à minuit chaque jour.

Planifier une tâche sur une plage horaire donnée

Il est possible de planifier une tâche sur une plage horaire donnée. Par exemple, tous les jours, y compris le week-end, de 8 h à 17 h. La syntaxe correspondante est la suivante :

00 17/08 * * * cat /home/helloworld.sh

Voici un autre exemple utilisant la même tâche cron, mais uniquement le week-end :

00 17/08 * * 6-0 cat /home/helloworld.sh

Planifier une tâche cron au début de chaque mois

Pour planifier une tâche au début de chaque mois, utilisez l’opérateur @monthly :

@monthly cat /home/helloworld.sh

Gardez à l’esprit que cette tâche sera exécutée à minuit le premier jour de chaque mois. De la même manière, l’opérateur @yearly exécute la tâche le premier jour de chaque année.

Planifier une tâche à plusieurs heures de la journée

Vous pouvez programmer une tâche cron pour qu’elle s’exécute plusieurs fois par jour, par exemple cinq fois. Dans l’exemple suivant, nous allons configurer une tâche pour qu’elle s’exécute à 12 h, 15 h, 17 h, 19 h et 21 h.

0 12,15,17,19,21 * * * cat /home/helloworld.sh

Exécuter une commande Linux après chaque redémarrage

Comme les opérateurs @daily, @monthly et @yearly, cron prend également en charge l’opérateur @reboot. Vous pouvez l’utiliser pour planifier une tâche qui s’exécutera à chaque démarrage ou redémarrage du système :

@reboot cat /home/helloworld.sh

Où se trouve le fichier crontab ?

Selon le système d’exploitation, le fichier crontab se trouve à l’un des emplacements suivants :

  • macOS – /var/at/tabs
  • Systèmes basés sur Debian – /var/spool/cron/crontabs/
  • Systèmes basés sur Red Hat – /var/spool/cron

Fonctionnalités supplémentaires de Crontab

En plus de ses fonctionnalités de base, Crontab permet aussi de créer un journal d’exécution des tâches cron ou de désactiver les notifications par e-mail. Consultez les sections ci-dessous pour en savoir plus.

Créer un fichier journal

La méthode la plus simple pour enregistrer toutes les sorties des tâches cron consiste à utiliser la redirection suivante :

* * * * * cat /home/helloworld.sh >> /var/log/logs.log 2>&1

Cette commande enregistre toutes les sorties des tâches cron dans un fichier nommé logs.log.

Désactiver les e-mails

Comme cron envoie un e-mail à l’utilisateur après chaque tâche, il peut être utile de désactiver cette fonctionnalité afin d’éviter les messages indésirables. Pour cela, ajoutez simplement cette ligne à la fin de votre tâche cron :

>/dev/null 2>&1

Variables d’environnement de Crontab

Crontab permet de définir des variables d’environnement. Pour cela, utilisez la commande crontab -e mentionnée précédemment. Lors de la définition de ces variables, reportez-vous à la liste ci-dessous :

  • PATH – chemin d’accès par défaut pour crontab.
  • SHELL – shell par défaut.
  • LOGNAME – propriétaire du fichier crontab. Les informations proviennent du répertoire /etc/passwd.
  • HOME – répertoire personnel de l’utilisateur. Les informations proviennent du répertoire /etc/passwd.

Conclusion

Les tâches cron comptent parmi les meilleurs moyens d’exécuter des tâches planifiées sur des instances virtuelles et des systèmes Linux physiques. Elles permettent de planifier différentes opérations, comme une maintenance du système à une date précise ou de manière récurrente chaque jour de la semaine.

Dans ce tutoriel, nous avons présenté les principales opérations liées à Crontab. Nous avons également fourni plusieurs exemples pratiques que vous pourrez réutiliser lors de la création de votre fichier crontab.

Si vous avez des questions ou des remarques, n’hésitez pas à les partager dans la section des commentaires.

Tout le contenu des tutoriels de ce site est soumis aux normes éditoriales et aux valeurs rigoureuses de Hostinger.

Author
L'auteur

Faradilla Ayunindya

Faradilla, plus connue sous le nom de Ninda, possède 10 ans d’expérience en tant que linguiste et 5 ans en tant que spécialiste du marketing de contenu chez Hostinger. Elle aime suivre les tendances technologiques et aider les autres à résoudre leurs problèmes. Pendant son temps libre, Ninda aime apprendre de nouvelles langues et s’intéresser aux sciences de la vie, ainsi que regarder des vidéos d’animaux. Pour en savoir plus sur Ninda, retrouvez-la sur LinkedIn.

Ce que disent nos clients

Commentaires

0 responses

Write a respond

Veuillez remplir les champs obligatoires.Veuillez cocher la case de la confidentialité.Veuillez remplir les champs obligatoires et accepter la case de confidentialité.

Thank you! Your comment has been successfully submitted. It will be approved within the next 24 hours.