Comment vérifier si une tâche cron est planifiée sur Linux

LinuxLinuxBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire (lab), vous apprendrez à vérifier les tâches cron planifiées sur un système Linux. Vous commencerez par afficher les tâches cron spécifiques à l'utilisateur en utilisant la commande crontab -l.

Ensuite, vous explorerez les configurations cron système en inspectant le fichier /etc/crontab et en examinant les plans définis dans les répertoires /etc/cron.*. Cette expérience pratique vous dotera des compétences essentielles pour identifier et comprendre comment les tâches sont planifiées pour s'exécuter automatiquement sur un système Linux.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/SystemInformationandMonitoringGroup -.-> linux/crontab("Job Scheduling") subgraph Lab Skills linux/ls -.-> lab-558705{{"Comment vérifier si une tâche cron est planifiée sur Linux"}} linux/cat -.-> lab-558705{{"Comment vérifier si une tâche cron est planifiée sur Linux"}} linux/crontab -.-> lab-558705{{"Comment vérifier si une tâche cron est planifiée sur Linux"}} end

Afficher les tâches cron d'un utilisateur avec crontab -l

Dans cette étape, vous apprendrez à afficher les tâches planifiées pour l'utilisateur actuel en utilisant la commande crontab.

Cron est un planificateur de tâches basé sur le temps dans les systèmes d'exploitation de type Unix. Il permet aux utilisateurs de planifier des commandes ou des scripts pour qu'ils s'exécutent automatiquement à une heure ou une date spécifiée. Ces tâches planifiées sont souvent appelées "tâches cron" (cron jobs).

Chaque utilisateur du système peut avoir son propre ensemble de tâches cron. Elles sont stockées dans un fichier spécial appelé "crontab" (table cron).

Pour afficher les tâches cron de l'utilisateur actuel (labex), vous utiliserez la commande crontab avec l'option -l. L'option -l signifie "liste".

Ouvrez le terminal si vous ne l'avez pas déjà fait. N'oubliez pas que vous pouvez trouver l'icône du Xfce Terminal sur le côté gauche de votre bureau.

Tapez la commande suivante dans le terminal et appuyez sur Entrée :

crontab -l

Si vous n'avez pas encore configuré de tâches cron pour l'utilisateur labex, vous verrez probablement un message indiquant qu'il n'y a pas d'entrées dans le crontab. C'est normal pour un nouvel environnement utilisateur.

no crontab for labex

Cette sortie confirme que l'utilisateur labex n'a actuellement aucune tâche cron personnelle planifiée.

S'il y avait des tâches planifiées pour l'utilisateur labex, elles seraient listées ici, montrant le planning et la commande à exécuter.

Comprendre comment afficher les tâches cron existantes est la première étape pour gérer les tâches planifiées sur un système Linux. Dans les étapes suivantes, vous explorerez les configurations cron système.

Cliquez sur Continuer pour passer à l'étape suivante.

Vérifier le crontab système dans /etc/crontab

Dans l'étape précédente, vous avez appris à afficher les tâches cron d'un utilisateur spécifique. Maintenant, explorons les tâches cron système, généralement configurées dans le fichier /etc/crontab.

Contrairement aux crontabs utilisateur gérés par la commande crontab, le fichier /etc/crontab est un fichier de configuration système qui peut être édité directement par l'administrateur système (ou un utilisateur ayant les privilèges sudo). Ce fichier contient souvent des tâches cron essentielles au fonctionnement du système.

Pour afficher le contenu du fichier /etc/crontab, vous pouvez utiliser un visualiseur de texte en ligne de commande comme cat ou less. Étant donné que /etc/crontab est un fichier système, vous pourriez avoir besoin de sudo pour le lire, bien que dans cet environnement LabEx, vous puissiez généralement le lire sans sudo. Utilisons cat pour afficher le contenu directement dans le terminal.

Tapez la commande suivante et appuyez sur Entrée :

cat /etc/crontab

Vous verrez le contenu du fichier crontab système. Il pourrait ressembler à ceci :

## /etc/crontab: system-wide crontab
## Unlike any other crontab you might learn about, this file has a fifth field
## which is the user that the command will run as.
#
## min hour day month wday user command
## ---- ---- --- ----- ---- ---- -------
#
## Example of job execution:
## .---------------- minute (0 - 59)
## |  .------------- hour (0 - 23)
## |  |  .---------- day of month (1 - 31)
## |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
## |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
## |  |  |  |  |  .- user to run job as
## |  |  |  |  |  |  . command to be executed
## |  |  |  |  |  |  |
## *  *  *  *  *  user command
#
... (other entries)

Remarquez la structure de ce fichier. Il inclut des commentaires expliquant le format, et chaque ligne représentant une tâche cron a un champ supplémentaire par rapport aux crontabs utilisateur : le champ user. Ce champ spécifie l'utilisateur sous lequel la commande doit être exécutée.

Les crontabs système sont souvent utilisés pour des tâches telles que les mises à jour système, la rotation des journaux et d'autres activités de maintenance qui doivent être exécutées avec des privilèges élevés ou en tant qu'utilisateur système spécifique.

En examinant /etc/crontab, vous obtenez des informations sur les tâches automatisées planifiées au niveau système.

Cliquez sur Continuer pour passer à l'étape suivante, où vous explorerez d'autres emplacements pour les tâches cron système.

Inspecter les plans de tâches cron dans /etc/cron.*

En plus du fichier principal /etc/crontab, de nombreuses distributions Linux utilisent des répertoires tels que /etc/cron.d/, /etc/cron.hourly/, /etc/cron.daily/, /etc/cron.weekly/ et /etc/cron.monthly/ pour organiser les tâches cron système.

Ces répertoires offrent une manière plus structurée de gérer les tâches planifiées. Les scripts placés dans /etc/cron.hourly/ sont exécutés toutes les heures, ceux dans /etc/cron.daily/ sont exécutés tous les jours, et ainsi de suite. L'horaire exact est généralement contrôlé par un script dans /etc/crontab qui exécute périodiquement ces répertoires.

Inspectons le contenu de ces répertoires pour voir quelles tâches système sont planifiées.

Tout d'abord, listons le contenu du répertoire /etc/cron.d/. Ce répertoire contient souvent des fichiers placés par les paquets installés qui définissent des tâches cron spécifiques.

Tapez la commande suivante et appuyez sur Entrée :

ls /etc/cron.d/

Vous pourriez voir une sortie similaire à celle-ci, listant les fichiers dans le répertoire :

anacron  e2scrub_all  phpsessionclean

Ces fichiers contiennent des définitions de tâches cron, de format similaire à /etc/crontab (y compris le champ utilisateur). Vous pouvez afficher le contenu de l'un de ces fichiers en utilisant cat. Par exemple, pour afficher le fichier anacron :

cat /etc/cron.d/anacron

Ensuite, examinons les répertoires pour les tâches horaires, quotidiennes, hebdomadaires et mensuelles. Nous pouvons lister le contenu de ces répertoires en utilisant ls.

Tapez les commandes suivantes une par une et appuyez sur Entrée après chaque commande :

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

Vous pourriez voir divers scripts ou fichiers listés dans ces répertoires. Par exemple, /etc/cron.daily/ contient souvent des scripts pour des tâches telles que la mise à jour de la liste des paquets, le nettoyage des fichiers temporaires ou la rotation des journaux.

ls /etc/cron.daily/
apt-compat  dpkg  google-chrome  man-db  mlocate  passwd  update-notifier-common

Ces scripts sont automatiquement exécutés par le système cron à des intervalles spécifiés (horaire, quotidien, hebdomadaire, mensuel).

En examinant les fichiers dans /etc/crontab et les répertoires sous /etc/cron.*, vous pouvez obtenir une vue complète des tâches automatisées s'exécutant sur le système. Cela est crucial pour l'administration système et la résolution de problèmes.

Vous avez maintenant exploré les principaux emplacements pour afficher les tâches cron à la fois pour les utilisateurs et au niveau système.

Cliquez sur Continuer pour terminer ce laboratoire.

Résumé

Dans ce laboratoire, vous avez appris à vérifier les tâches cron planifiées sur Linux. Vous avez commencé par afficher les tâches cron spécifiques à un utilisateur en utilisant la commande crontab -l, en comprenant que chaque utilisateur peut avoir son propre ensemble de tâches planifiées stockées dans son fichier crontab. Vous avez vu comment interpréter la sortie, y compris le message indiquant qu'il n'y a pas de tâches cron existantes pour l'utilisateur actuel.

Ensuite, vous avez commencé à explorer les configurations cron système, en particulier le fichier /etc/crontab. Ce fichier est utilisé pour les tâches cron au niveau système et est géré directement par l'administrateur système, contrairement aux crontabs utilisateur. Comprendre à la fois les emplacements des tâches cron utilisateur et système est crucial pour vérifier de manière complète les tâches planifiées sur un système Linux.