← Retour
Informatique

crontab

Cédrix · 18/02/2023
Modifié le 16 mai 2026 à 21h22

1/ 7 j  ·  4/ 14 j  ·  4/ 30 j  lecteurs

cron est un démon Unix qui exécute, chaque minute, les tâches planifiées par les utilisateurs. La commande crontab (contraction de chrono table, « table de planification ») permet de consulter et modifier ces tâches.

Chaque utilisateur dispose de sa propre table ; le démon cron, lancé par root, exécute chaque tâche sous l’identité de son propriétaire.

Format d’une ligne

Chaque ligne d’une crontab suit le format suivant :

mm hh jj MMM JJJ commande
Champ Plage Description
mm 0–59 Minute
hh 0–23 Heure
jj 1–31 Jour du mois
MMM 1–12 Mois
JJJ 0–6 Jour de la semaine (0 = dimanche)

Lister les tâches

Afficher la table de l’utilisateur connecté :

crontab -l

Mots-clés

Plusieurs mots-clés peuvent remplacer le code horaire :

Mot-clé Description Équivalent
@reboot Au démarrage (aucun)
@yearly Tous les ans 0 0 1 1 *
@annually Tous les ans 0 0 1 1 *
@monthly Tous les mois 0 0 1 * *
@weekly Toutes les semaines 0 0 * * 0
@daily Tous les jours 0 0 * * *
@midnight Toutes les nuits 0 0 * * *
@hourly Toutes les heures 0 * * * *

Éditer la table

Ouvrir la crontab de l’utilisateur connecté dans l’éditeur par défaut :

crontab -e

L’éditeur utilisé peut être modifié via la variable d’environnement EDITOR :

$ export EDITOR=nano

Supprimer la table

crontab -r

Remplacer la table

Remplacer la table courante par le contenu d’un fichier :

crontab <fichier>

Rediriger les sorties

Par défaut, la sortie standard d’une tâche cron est envoyée par mail à son propriétaire. Pour la rediriger, on utilise la syntaxe shell habituelle :

mm hh jj MMM JJJ tâche > fichier1 2> fichier2
  • fichier1 reçoit la sortie standard
  • fichier2 reçoit l’erreur standard

Pour ignorer toute sortie :

>/dev/null 2>&1

Inspecter l’activité

Afficher la date du dernier accès au script de cron (indicateur approximatif d’activité) :

ls -lut /etc/init.d/cron

Extraire les lignes relatives à cron dans le journal système :

grep -w cron /var/log/syslog

Pour aller plus loin

Les tables sont stockées dans un fichier propre à chaque utilisateur :

  • /var/spool/cron/crontabs/<utilisateur> sous Debian, MX Linux
  • /var/spool/cron/<utilisateur> sous Red Hat, Fedora et CentOS

Une table système centralisée existe également dans /etc/crontab.

Pour les postes qui ne restent pas allumés en permanence, l’utilitaire anacron prend le relais : il exécute, au démarrage, les tâches qui auraient dû tourner pendant que la machine était éteinte.

Partager : ✉ Mail X in 🐘
Commentaires

Aucun commentaire pour l'instant. Soyez le premier !

Laisser un commentaire
Un code de vérification sera envoyé à votre adresse email.