Le choix de l'éditeur se fait lors de la première utilisation ou bien par la commande :
select-editor
Vérification par la commande :
cat .selected_editor
| Commande | Fonction |
|---|---|
| crontab -l | visualisation de la crontab |
| crontab -e | édition de la crontab |
| crontab -r | suppression de la crontab |
| crontab -e -u user | édition de la contab de l'utilisateur user |
| sudo crontab -e | édition de la crontab root |
45 4 * * * /root/script.pl
50 4 * * 6,7 /root/script.pl
50 4 1 5 * /root/script.pl
*/5 20-23 * * * /root/script.pl
@reboot /root/script.pl
Chaque fichier crontab porte le nom de l'utilisateur en plus de l'utilisateur root.
Les fichiers se trouvent sous /var/spool/cron/crontabs
Les fichiers se trouvent sous /var/spool/cron
cat << tagFIN > nomdufichier ... ... tagFIN
taper les lignes au fur et à mesure en finissant par la dernière : tagFIN
cat << tagFIN >> nomdufichier ... ... tagFIN
taper les lignes au fur et à mesure en finissant par la dernière : tagFIN
Il est possible de positionner la variable MAILTO en début de crontab
MAILTO="" # pour éviter de recevoir des mails dans la boite de l'utilisateur MAILTO="toto@machin.fr" # pour rediriger vers une autre boite mail
Pour éviter la présence de process zombie en cas d'échec il convient de rediriger la sortie standard et d'erreur
* * * * * /chemin/script.sh >> /var/log/monscript.log 2>&1
Il arrive souvent qu'un script qui fonctionne parfaitement en interactif ne fonctionne plus quand on essaye de l'exécuter via une tâche sous cron.
Lors de l'exécution sous cron, en non interactif, l'environnement utilisateur n'est pas initialisé et donc certaines variables d'environnements ne sont pas initialisées. Par exemple la variable PATH est minimale (/usr/bin et /bin seulement).
*/5 20-23 * * * PATH=<liste:des:chemins:indispensables>; /root/script.pl
Pour pouvoir utiliser la commande sudo dans un script exécuté sous cron il faut pouvoir utiliser la commande sans mot de passe (voir sudo). Sinon le script s'exécute sans s'arrêter pour demander le mot de passe, sans erreur mais sans exécuter la commande.
Pour debbuger un script sous cron ajouter des redirections de la console standard et d'erreur :
*/5 20-23 * * * /root/script.pl > /tmp/stdout.log 2>/tmp/stderr.log