Les tâches planifiées sur Linux en utilisant crontab

Dernière mise à jour sur 6 sept. 2023 à 13:10:55.
Catégorie: Serveurs cloud

CentOS Cron Linux

Cron est une application qui exécute des tâches planifiées à un moment défini sur les systèmes Linux. Le "crontab" (Cron Table) est un fichier de configuration où ces tâches peuvent être ajoutées.

En travaillant avec une tâche cron (ou une tâche planifiée), vous pouvez exécuter des commandes en arrière-plan via le service cron à intervalles récurrents, par exemple pour effacer les dossiers de cache, déplacer des fichiers, lancer un script de sauvegarde, synchroniser des dossiers... .

Syntaxe crontab

Chaque utilisateur a sa propre crontab, qui peut être facilement utilisée à l'aide de la commande crontab :

Modifying a crontab: crontab -e
Displaying a crontab: crontab -l
Removing all crontab entries: crontab -r

Dans un fichier crontab, chaque ligne représente une tâche planifiée. La règle commence toujours par la définition du temps.
La forme d'une règle semble intimidante à première vue, mais la structure est logique.
Une ligne crontab se compose de 6 champs, chacun étant séparé par des espaces blancs (un ou plusieurs espaces ou tabulations).

+------------- minutes (0 - 59) 
¦ +-------------- hours (0 - 23)
¦ ¦ +--------------- day of month (1 - 31)
¦ ¦ ¦ +---------------- month (1 - 12)
¦ ¦ ¦ ¦ +----------------- weekday (0 - 6) (0 is sunday, 1 is monday, ..., 7 is also sunday!)
¦ ¦ ¦ ¦ ¦
¦ ¦ ¦ ¦ ¦
* * * * * /usr/bin/command

Une entrée correcte peut être :

04 11 * * 3 /usr/sbin/ntpdate pool.ntp.org 2>&1 >/dev/null
La règle ci-dessus garantit qu'une fois par semaine, à savoir le mercredi (3) à 11h04, la commande "/usr/sbin/ntpdate pool.ntp.org 2>&1 >/dev/null" doit être exécutée.
La notation "2>&1 >/dev/null" à la fin de la commande fait partie de la commande elle-même et garantit que la sortie de la commande n'est pas transmise à la console (redirection de sortie Linux).

Souhaitez-vous arrêter temporairement d'utiliser une certaine ligne, mais la laisser dans le fichier ?
Ensuite, vous pouvez commenter cette ligne. Cela peut être fait en mettant "#" devant la ligne.
#04 11 * * 3 /usr/sbin/ntpdate pool.ntp.org 2>&1 >/dev/null

Tâches cron système

En plus de la crontab de l'utilisateur, des tâches cron peuvent également être créées pour le système.
Un champ supplémentaire est utilisé pour indiquer sous quel utilisateur ce cron doit être exécuté.
Dans cet exemple, nous supposons que la tâche sera effectuée par l'utilisateur 'root'.
(L'utilisateur 'root' a tous les droits sur le système ! Par conséquent, d'un point de vue de la sécurité, ce n'est pas la meilleure solution pour exécuter ces tâches planifiées. Cependant, nous l'utilisons dans cet exemple car cet utilisateur est toujours présent.)

04 11 * * 3 root /usr/sbin/ntpdate pool.ntp.org 2>&1 >/dev/null

Emplacements des fichiers

Vous pouvez généralement définir les crontabs du système aux emplacements suivants :

1. Le fichier crontab

/etc/crontab

Ce qui précède est l'emplacement du fichier crontab sous la configuration du système.

2. Sous les dossiers cron.d

/etc/cron.d/

Ce qui précède est un dossier dans lequel divers fichiers crontab peuvent être placés, qui seront ensuite exécutés par cron.

3. Dans des dossiers spécifiques qui fournissent déjà une heure

/etc/cron.daily
/etc/cron.hourly
/etc/cron.monthly
/etc/cron.weekly

Ce sont des temps prédéterminés. Soyez prudent avec ces fichiers, vous n'avez pas à définir une heure ici.
Vous pouvez simplement mettre des scripts shell Linux dans ces dossiers et ils seront exécutés à l'heure prévue !
La présence ou l'exécution réelle de ces répertoires dépend de votre distribution Linux.
La définition associée à ces répertoires (user, time) se trouve généralement dans /etc/crontab.


Articles connexes

Paramètres des serveurs mail Kinamo (feuille de triche)

L'article suivant vous donne un résumé de la configuration et noms du serveurs mail de Kinamo. Avec la liste ici...

En savoir plus

Créer un filtre anti-spam avec le Kinamo Webmail

L'article suivant vous explique comment ajouter un filtre spécial pour mettre des messages SPAM automatiquement dans un dossier dans votre...

En savoir plus

Acheter un certificat SSL? Qu'est un certificat SSL?

Vous voulez acheter un certificat SSL? Mais, c'est quoi un certificat SSL? Et pourquoi est-ce que tous le monde dit...

En savoir plus

Besoin d'aide supplémentaire?

Vous n'avez pas obtenu de réponse à toutes vos questions?
Ne vous inquiétez pas, faites une demande d'assistance!

Sélectionnez votre langue

Toutes les langues: