Dernière mise à jour sur 6 sept. 2023, 13:10:55.
Catégorie:
Serveurs cloud
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... .
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/nullLarè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.
#04 11 * * 3 /usr/sbin/ntpdate pool.ntp.org 2>&1 >/dev/null
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
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.
Vous n'avez pas obtenu de réponse à toutes vos questions?
Ne vous inquiétez pas, faites une demande d'assistance!