Comment afficher et lister les travaux Cron à l’aide de Crontab
Dans cet article, nous vous expliquons comment afficher et répertorier les tâches cron à l’aide de la commande crontab, afin de vous aider à gérer efficacement les tâches planifiées.
Qu’est-ce que la commande crontab ?
Crontab (abréviation de “table cron”) est un fichier qui définit les tâches planifiées dans le système cron. Chaque utilisateur d’un système, y compris l’utilisateur root, peut avoir sa propre crontab, qui spécifie les tâches qu’il souhaite automatiser.
Le fichier crontab se compose de tâches cron dans la syntaxe suivante :
* * * * * commande_à_exécuter
| | | | |
| | | ----- jour de la semaine (0 - 7) (dimanche=0 ou 7)
| ---------- mois (1 - 12)
| --------------- jour du mois (1 - 31)
| -------------------- heure (0 - 23)
------------------------- minute (0 - 59)
Cette structure permet de contrôler avec précision le moment où les tâches sont exécutées, ce qui fait de cron un puissant outil d’automatisation.
Comment lister les travaux Cron à l’aide de Crontab
Pour gérer les tâches cron, la commande crontab est l’utilitaire qu’il vous faut. Voici comment afficher les tâches cron pour un utilisateur spécifique ou pour le système.
1. Affichage de vos propres tâches cron
Pour afficher les tâches cron de votre utilisateur actuel, exécutez la commande suivante dans le terminal :
crontab -l
Cette commande affichera la liste de toutes les tâches planifiées pour l’utilisateur actuellement connecté au système. S’il n’y a pas de tâches cron, la commande renvoie une liste vide ou un message indiquant qu’il n’y a pas de crontab pour l’utilisateur.
Exemple de sortie :
# m h dom mon dow command
0 0 * * * /home/user/backup.sh
30 2 * * 7 /home/user/scripts/cleanup.sh
Dans cet exemple :
- Un script de sauvegarde) s’exécute tous les jours à minuit.
(backup.sh
- Un script de nettoyagecleanup
(
) s’exécute tous les dimanches à 2h30..sh
2. Liste des tâches Cron pour un autre utilisateur
Si vous avez les privilèges root ou sudo, vous pouvez afficher les travaux cron de n’importe quel utilisateur en utilisant le drapeau
-u
sudo crontab -l -u nom d'utilisateur
Remplacez nom d’utilisateur par le nom d’utilisateur réel de l’utilisateur dont vous voulez voir les tâches cron.
Par exemple, pour lister les tâches cron d’un utilisateur nommé john, exécutez :
sudo crontab -l -u john
Cela affichera toutes les tâches cron programmées pour cet utilisateur.
3. Liste des tâches Cron du système
En plus des tâches cron spécifiques aux utilisateurs, il existe des tâches cron à l’échelle du système qui sont planifiées par le système ou l’utilisateur root. Ils sont stockés dans des répertoires tels que /etc/crontab, /etc/cron.d/ et le répertoire /var/spool/cron/crontabs.
Pour répertorier les tâches cron du système, vous pouvez ouvrir et afficher le fichier /etc/crontab :
cat /etc/crontab
La sortie peut ressembler à ceci :
SHELL=/bin/sh
PATH=/usr/bin:/usr/sbin#
m h dom mon dow user command17 * * * * root cd / && run-parts –report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts –report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / & run-parts –report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts –report /etc/cron.monthly )
Dans cet exemple :
- les tâches /etc/crons’exécutent à la 17ème minute de chaque heure.
.hourly
- les tâchessont exécutées tous les jours à 6:25 AM.
/etc/cron.daily
- les tâchessont exécutées tous les dimanches à 6:47 AM.
/etc/cron.weekly
- les tâchessont exécutées le premier jour de chaque mois à 6:52 AM.
/etc/cron.monthly
Vous pouvez également afficher les tâches dans le fichier /etc/cron.d/ en exécutant la commande suivante : /etc/cron.d/ :
ls /etc/cron.d/
Chaque fichier de ce répertoire peut contenir des tâches cron supplémentaires pour les services du système.
4. Liste des travaux Cron dans le répertoire /var/spool/cron/ (en anglais)
Les tâches cron spécifiques à l’utilisateur sont généralement stockées dans le répertoire /var/spool/cron/crontabs. Vous pouvez naviguer jusqu’à ce répertoire et lister tous les fichiers de tâches cron :
ls /var/spool/cron/crontabs
Cette commande affichera les fichiers crontab de chaque utilisateur. Pour voir le contenu de la crontab d’un utilisateur spécifique, vous pouvez exécuter :
cat /var/spool/cron/crontabs/username
Ceci fournit la même sortie que l’exécution de crontab -l -u nom d’utilisateur.
Édition des tâches Cron
Si vous avez besoin de modifier ou d’ajouter de nouvelles tâches cron, vous pouvez éditer votre crontab en exécutant :
crontab -e
Cette commande ouvre votre crontab dans l’éditeur de texte par défaut, ce qui vous permet d’ajouter ou de modifier des tâches existantes.
Par exemple, pour ajouter un nouveau travail qui exécute un script tous les jours à 3 heures du matin, vous devez ajouter cette ligne :
0 3 * * * * /home/user/script.sh
Après avoir enregistré et quitté le fichier, le travail sera planifié immédiatement.
Commandes courantes de la liste Crontab
Voici une référence rapide pour lister les tâches cron dans différents scénarios :
- Lister les travaux cron de l’utilisateur actuel:
crontab -l
- Lister les tâches cron d’un autre utilisateur (nécessite sudo):
sudo crontab -l -u nomutilisateur
- Lister les tâches cron du système:
cat /etc/crontab
- Liste toutes les tâches cron dans:
/etc/cron.d/
ls /etc/cron.d/
- Afficher les tâches cron stockées dans:
/var/spool/cron/crontabs/
ls /var/spool/cron/crontabs
Conclusion
Lister et afficher les tâches cron à l’aide de crontab est un moyen simple mais puissant de gérer vos tâches planifiées dans un système de type Unix. Que vous gériez vos propres tâches cron spécifiques à l’utilisateur ou des tâches automatisées à l’échelle du système, la compréhension de ces commandes vous permettra de vous assurer que vos tâches se déroulent correctement et à temps.
En maîtrisant cron, vous pouvez automatiser les tâches répétitives, effectuer des sauvegardes et vous assurer que vos scripts s’exécutent de manière cohérente dans votre environnement.