# crontab ![Nom de la section](dummy.png) 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 **c**h**ron**o **tab**le, "table de planification". Il est exécuté par **root** et permet de s'adapter à l'identité à chacun des utilisateurs. ## - Liste la table des tâches Afficher la liste des tâches pour l'utilisateur connecté ``` crontab -l ``` ## - 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 * * * * | ## - É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 ``` ## - Supprimer la tables des tâches Supprimer la liste des tâches pour l'utilisateur connecté ``` crontab -r ``` ## - Remplacer la tables des tâches Remplacer la liste des tâches pour l'utilisateur connecté par une nouvelle table contenu dans `` ``` crontab ``` ## - 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 standard - `fichier2` 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 ``` ## - + d'infos Les informations de planification sont stockées dans un fichier relatif à l'utilisateur. Par exemple : - `/var/spool/cron/crontabs/` sous Debian, MX Linux - `/var/spool/cron/` 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.