Files
abonnel-www/daa32dd7-4917-4a4a-80ba-fd33257ee9ec/index.md
T
2026-05-16 23:22:07 +02:00

2.9 KiB
Raw Blame History

crontab

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 059 Minute
hh 023 Heure
jj 131 Jour du mois
MMM 112 Mois
JJJ 06 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.