crontab
Programme Unix qui exécute toutes les minutes un ensemble de taches prédéterminées.
Sous Linux, le programme cron s'appelle crontab, concaténation de chrono table, “table de planification”. Il est exécuté par root et permet de s'adapter à l'identité à chacun des utilisateurs.
1. Liste la table des tâches
Afficher la liste des tâches pour l'utilisateur connecté
crontab -l
2. Mots clés
Des mots-clé 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 * * * * |
3. Éditer la tables des tâches
Éditer la liste des tâches pour l'utilisateur connecté
crontab -e
L'éditeur par défaut est exécuté pour éditer la table des tâches. Il est modifiable grâce à la variable d'environnement :
$ export EDITOR=nano
4. Supprimer la tables des tâches
Supprimer la liste des tâches pour l'utilisateur connecté
crontab -r
5. Remplacer la tables des tâches
Remplacer la liste des tâches pour l'utilisateur connecté par une nouvelle table contenu dans <fichier>
crontab <fichier>
6. Journalisation
La sortie standard pour une tache cron est l'envoi d'un mail. Pour modifier la sortie, il faut utiliser la syntaxe suivante :
mm hh jj MMM JJJ tâche > fichier1 2> fichier2
fichier1
contient la sortie standardfichier2
contient l'erreur standard
Par exemple, pour ne rien afficher :
>/dev/null 2>&1
Afficher l'horaire de la dernière tâche exécutée pour l'ensemble des utilisateurs :
ls -lut /etc/init.d/cron
Extraire du journal du système les informations concernant la table cron :
grep -w cron /var/log/syslog
7. + d'infos
Les informations de planification sont stockées dans un fichier relatif à l'utilisateur. Par exemple :
/var/spool/cron/crontabs/<utilisateur>
sous Debian, MX Linux/var/spool/cron/<utilisateur>
sous Red Hat, Fedora et Cent OS
En plus, il existe un table cron centralisée dans /etc/crontab
.
Pour un poste de travail ne fonctionnant pas forcément toute une journée, l'application anacron permet de lancer les commandes qui dû l'être lorsque l'ordinateur était éteint.