Économisez 15% sur tous les services d'hébergement

Testez vos compétences et obtenez Réduction sur tout plan d'hébergement

Utilisez le code : Skills Commencer
Sections
Administration Linux

Comment afficher et lister les tâches Cron à l’aide de Crontab

L’utilitaire cron est l’un des outils les plus fondamentaux des systèmes d’exploitation de type Unix, permettant aux utilisateurs et aux administrateurs de planifier des commandes et des scripts pour s’exécuter automatiquement à des heures ou des intervalles définis. Que vous gériez un serveur de production, mainteniez un environnement VPS Hosting, ou automatisiez des tâches sur une machine locale, la compréhension du fonctionnement des tâches cron est une compétence essentielle pour tout administrateur système ou développeur.

Ce guide complet explique tout ce que vous devez savoir sur l’affichage et l’énumération des tâches cron à l’aide de la commande crontab, afin que vous puissiez gérer vos tâches planifiées avec confiance et précision.

Qu’est-ce que Cron et pourquoi est-ce important ?

Cron est un planificateur de tâches basé sur le temps intégré aux systèmes d’exploitation Unix et Linux. Il s’exécute continuellement en arrière-plan en tant que processus daemon, vérifiant chaque minute si des tâches planifiées doivent être exécutées. Ces tâches — connues sous le nom de cron jobs — peuvent aller des sauvegardes de base de données automatisées et de la rotation des journaux à l’envoi d’e-mails et à l’exécution de scripts de maintenance.

Pour quiconque gère un Dedicated Server ou un environnement partagé, les cron jobs sont indispensables pour maintenir la santé des systèmes, automatiser les opérations répétitives et assurer l’exécution des processus critiques sans intervention manuelle.

Qu’est-ce que la commande Crontab ?

Crontab (abréviation de « cron table ») est à la fois le nom du fichier de configuration qui stocke les tâches planifiées et l’utilitaire de ligne de commande utilisé pour gérer ces fichiers. Chaque utilisateur sur un système de type Unix — y compris l’utilisateur root — peut maintenir son propre fichier crontab, qui définit quelles tâches doivent s’exécuter et quand.

Syntaxe de Crontab expliquée

Chaque ligne dans un fichier crontab suit une spécification de temps stricte à cinq champs suivie de la commande à exécuter :

* * * * * command_to_be_executed
| | | | |
| | | | +----- Day of the week (0–7) [Sunday = 0 or 7]
| | | +---------- Month (1–12)
| | +--------------- Day of the month (1–31)
| +-------------------- Hour (0–23)
+------------------------- Minute (0–59)

Cette structure vous donne un contrôle précis et granulaire sur la planification des tâches — de l’exécution d’un script une fois par an à l’exécution d’une commande chaque minute.

Exemples courants d’expressions de temps Crontab

ExpressionSignification
0 0 * * *Chaque jour à minuit
*/5 * * * *Toutes les 5 minutes
30 2 * * 7Chaque dimanche à 2h30 du matin
0 3 1 * *Premier jour de chaque mois à 3h00 du matin
0 9-17 * * 1-5Chaque heure de 9h à 17h, lundi–vendredi

Comment lister les tâches Cron à l’aide de Crontab

La commande crontab est l’utilitaire principal pour gérer et inspecter les tâches cron. Voici toutes les méthodes que vous devez connaître.

1. Afficher vos propres tâches Cron

Pour afficher toutes les tâches cron planifiées pour l’utilisateur actuellement connecté, exécutez :

crontab -l

Cette commande lit et affiche le fichier crontab de l’utilisateur actuel. Si aucune tâche cron n’a été configurée, le système retournera soit une sortie vide, soit affichera un message tel que :

no crontab for username

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 :

  • Le script de sauvegarde s’exécute chaque jour à minuit (00:00).
  • Le script de nettoyage s’exécute chaque dimanche à 2h30.

2. Lister les tâches Cron d’un autre utilisateur

Si vous disposez de sudo ou de privilèges root, vous pouvez inspecter les tâches cron appartenant à tout autre utilisateur du système en utilisant le drapeau -u :

sudo crontab -l -u username

Remplacez username par le nom de compte réel. Par exemple :

sudo crontab -l -u john

Ceci est particulièrement utile pour les administrateurs système auditant les tâches planifiées sur plusieurs comptes utilisateur sur un serveur.

3. Lister les tâches Cron à l’échelle du système

Au-delà des crontabs spécifiques à l’utilisateur, les systèmes Linux maintiennent plusieurs emplacements pour les tâches planifiées à l’échelle du système. Celles-ci sont généralement gérées par l’utilisateur root ou les services système et sont stockées aux emplacements suivants :

EmplacementDescription
/etc/crontabFichier crontab principal à l’échelle du système
/etc/cron.d/Répertoire pour les fichiers cron système supplémentaires
/var/spool/cron/crontabs/Répertoire stockant les fichiers crontab individuels des utilisateurs
/etc/cron.hourly/Scripts exécutés chaque heure
/etc/cron.daily/Scripts exécutés chaque jour
/etc/cron.weekly/Scripts exécutés chaque semaine
/etc/cron.monthly/Scripts exécutés chaque mois

Afficher le crontab système principal

cat /etc/crontab

Exemple de sortie

SHELL=/bin/sh
PATH=/usr/bin:/usr/sbin

# m h dom mon dow user command
17 *  * * * 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 )

Notez que contrairement aux crontabs utilisateur, le /etc/crontab système inclut un champ utilisateur entre la spécification de l’heure et la commande, spécifiant quel compte utilisateur exécute chaque tâche.

Lister les fichiers Cron système supplémentaires

ls /etc/cron.d/

Chaque fichier de ce répertoire peut définir des tâches planifiées supplémentaires pour des services système spécifiques ou des applications installées sur votre serveur.

4. Afficher les tâches Cron stockées dans /var/spool/cron

Les fichiers crontab spécifiques à l’utilisateur sont stockés sur le disque dans /var/spool/cron/crontabs/. Vous pouvez lister tous les utilisateurs qui ont des crontabs actifs avec :

ls /var/spool/cron/crontabs/

Pour lire le contenu du fichier crontab d’un utilisateur spécifique directement :

cat /var/spool/cron/crontabs/username

> Remarque : Ceci produit la même sortie que sudo crontab -l -u username, mais l’accès direct à ces fichiers nécessite généralement les privilèges root.

5. Lister toutes les tâches Cron pour tous les utilisateurs à la fois

En tant qu’administrateur système, vous souhaiterez peut-être auditer chaque tâche cron sur tous les utilisateurs simultanément. La ligne de commande suivante accomplira cela :

for user in $(cut -f1 -d: /etc/passwd); do echo "--- Cron jobs for: $user ---"; crontab -l -u $user 2>/dev/null; done

Ce script itère sur chaque compte utilisateur défini dans /etc/passwd et affiche leurs tâches cron planifiées, supprimant les messages d’erreur pour les utilisateurs sans crontab.

Comment éditer les tâches Cron

Pour ajouter ou modifier les tâches cron de l’utilisateur actuellement connecté, utilisez :

crontab -e

Cela ouvre le fichier crontab dans l’éditeur de texte par défaut de votre système (généralement nano ou vi). Après avoir enregistré et quitté, les modifications prennent effet immédiatement — aucun redémarrage de service n’est requis.

Exemple : Exécuter un script tous les jours à 3h00 du matin

0 3 * * * /home/user/scripts/daily-report.sh

Exemple : Supprimer toutes les tâches Cron de l’utilisateur actuel

crontab -r

> Avertissement : L’indicateur -r supprime toutes les tâches cron de l’utilisateur actuel sans confirmation. Utilisez-le avec prudence.

Référence rapide : Commandes Crontab essentielles

TâcheCommande
Lister les tâches cron de l’utilisateur actuelcrontab -l
Lister les tâches cron d’un autre utilisateursudo crontab -l -u username
Éditer le crontab de l’utilisateur actuelcrontab -e
Supprimer toutes les tâches cron de l’utilisateur actuelcrontab -r
Afficher le crontab systèmecat /etc/crontab
Lister les fichiers cron dans /etc/cron.d/ls /etc/cron.d/
Lister tous les fichiers crontab utilisateurls /var/spool/cron/crontabs/
Afficher le fichier crontab d’un utilisateur spécifiquecat /var/spool/cron/crontabs/username

Dépannage des problèmes courants de tâches cron

Même les administrateurs expérimentés rencontrent des problèmes liés à cron. Voici les problèmes les plus courants et comment les résoudre :

La tâche cron ne s’exécute pas :

  • Vérifiez la syntaxe de votre entrée crontab à l’aide d’un validateur d’expression cron en ligne.
  • Assurez-vous que le script dispose des permissions d’exécution : chmod +x /path/to/script.sh
  • Vérifiez que le chemin absolu complet de la commande ou du script est spécifié.

Problèmes de variables d’environnement :

  • Cron s’exécute avec un environnement minimal. Utilisez toujours des chemins absolus pour les commandes et les binaires.
  • Définissez les variables nécessaires (comme PATH) en haut de votre fichier crontab.

Vérification des journaux cron :

  • Sur Debian/Ubuntu : grep CRON /var/log/syslog
  • Sur RHEL/CentOS : grep CRON /var/log/cron

Gestion des tâches Cron sur les environnements d’hébergement géré

Si vous exécutez vos applications sur un hébergement géré, l’accès à la gestion des tâches cron peut varier selon votre panneau de contrôle. Les utilisateurs sur VPS avec cPanel peuvent gérer les tâches cron via la section intuitive Cron Jobs du tableau de bord cPanel, qui fournit une interface graphique pour planifier les tâches sans avoir besoin de modifier manuellement les fichiers crontab.

Pour ceux qui préfèrent un contrôle complet en ligne de commande, un plan VPS Hosting vous donne un accès root complet pour gérer les tâches cron, les services système et les scripts d’automatisation exactement comme décrit dans ce guide. Si votre infrastructure exige encore plus de ressources et d’isolation, les Serveurs dédiés offrent l’environnement ultime pour exécuter des charges de travail planifiées complexes et haute fréquence.

Conclusion

Afficher et lister les tâches cron en utilisant crontab est une compétence fondamentale pour quiconque travaille avec des systèmes de type Unix. De l’inspection de vos propres tâches planifiées avec crontab -l à l’audit des tâches à l’échelle du système dans /etc/crontab et /etc/cron.d/, les commandes couvertes dans ce guide vous donnent une visibilité complète sur ce qui s’exécute sur votre serveur et quand.

En maîtrisant cron, vous pouvez automatiser les tâches répétitives, planifier des sauvegardes, gérer la rotation des journaux et maintenir une exécution cohérente des scripts dans toute votre infrastructure — tout sans intervention manuelle. Que vous soyez un administrateur système chevronné ou que vous commenciez tout juste à gérer des serveurs, cron reste l’un des outils d’automatisation les plus puissants et les plus fiables disponibles sur les systèmes Linux et Unix.