2.9 KiB
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 |
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
fichier1reçoit la sortie standardfichier2reç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.