crontab -e·différences d'environnement·crontab système vs utilisateur
Les tâches s'éditent généralement avec crontab -e. Cette commande ouvre le crontab propre à l'utilisateur courant et, à l'enregistrement, en vérifie la syntaxe avant de l'appliquer. On liste avec crontab -l et on supprime tout avec crontab -r — mais attention, -r efface sans confirmation.
L'environnement dans lequel cron exécute les tâches est différent du shell dans lequel vous vous connectez. cron ne fournit qu'un environnement minimal, et le PATH y est généralement court, comme /usr/bin:/bin. C'est pourquoi une commande qui fonctionnait dans le shell de connexion échoue souvent sous cron avec « commande introuvable ». Il est plus sûr d'écrire les commandes en chemin absolu.
Vous pouvez déclarer des variables d'environnement en haut du fichier crontab. Les plus courantes sont PATH=/usr/local/bin:/usr/bin:/bin, SHELL=/bin/bash, MAILTO="you@example.com", ainsi que CRON_TZ=Asia/Seoul qui fixe le fuseau horaire. Si une valeur contient des espaces, entourez-la de guillemets.
Le crontab utilisateur et le crontab système n'ont pas le même format. Le crontab utilisateur créé avec crontab -e utilise les 5 champs standard (minute heure jour mois jour de la semaine). En revanche, les entrées système de /etc/crontab et de /etc/cron.d/* comportent 6 champs (minute heure jour mois jour de la semaine user commande), avec un champ utilisateur d'exécution ajouté après le jour de la semaine. Comme cet outil interprète les 5 champs standard, retirez le champ utilisateur et n'entrez que les 5 premiers champs lorsque vous examinez un crontab système.
Plutôt qu'un horaire précis, si « chaque jour · chaque heure » suffit, vous pouvez aussi placer un script dans un répertoire drop-in comme /etc/cron.daily ou /etc/cron.hourly. Il s'exécute alors à intervalle défini sans expression. Ce n'est que lorsque vous avez besoin d'une minute ou d'une heure précise qu'il devient utile de placer dans le crontab une expression créée avec cet outil, ce qui rend la gestion plus propre.