Crontab
Crontab (de cron table) : table lue par le démon cron, où chaque ligne associe un moment décrit par cinq champs (minute, heure, jour du mois, mois, jour de la semaine) à une commande, par exemple 30 2 * * * /opt/signalements/bin/exporter.
Sur Debian et Ubuntu, les crontabs personnelles vivent dans /var/spool/cron/crontabs/<compte> et se manipulent par crontab -e, crontab -l et, pour l'administrateur, crontab -l -u <compte>. Les fichiers système /etc/crontab et /etc/cron.d/* ont un sixième champ, le compte sous lequel lancer la commande ; les scripts de /etc/cron.daily/ sont lancés par run-parts, qui ignore sans message tout nom contenant un point. Une tâche cron s'exécute avec /bin/sh (dash), un PATH réduit à /usr/bin:/bin, et sa sortie part par courrier : sans agent de messagerie, elle est jetée (No MTA installed, discarding output).
Autres pièges : un % dans la commande est transformé en saut de ligne (à écrire \%, par exemple dans date +\%F) ; quand le jour du mois et le jour de la semaine sont tous deux restreints, cron les combine par OU ; crontab -r supprime toute la table sans confirmation. Et une tâche rangée dans la crontab d'une personne tourne sous son identité : verrouiller son compte à son départ arrête la tâche. Un minuteur systemd règle la plupart de ces défauts (journal, rattrapage, compte de service).
Dans les cours
- Linux : administration système, leçon 10 : Planifier des tâches : cron et minuteurs
- Linux : administration système, leçon 1 : Prendre en charge un serveur