Cron

De WikiOpenTruc
Aller à : navigation, rechercher

La commande cron, sous linux, et plus précisément Debian Stretch.

Par défaut, un processus cron tourne de toutes manières, pour l'utilisateur root, en permanence, sur toute machine.

ps -ef | grep 'cron' ou ps -x | grep 'cron' (en root) si vous doutez.

Ce process, même si c'est root qui en est propriétaire, s'occupe des tâches cron de tous les utilisateurs.

Les tâches utilisateurs spécifiées via crontab -e n'apparaissent pas dans /etc/crontab


Attention

  • Avant de lancer une tâche en cron, évidemment, on la teste déjà à la mano. C'est d'autant plus nécessaire que cron est très silencieux. Si ça ne marche pas, on n'est guère prévenu.
  • si on lance un programme qui eg écrit dans un fichier, il vaut mieux que tous les noms : exécutable, code source, noms de fichiers, soient spécifiés en absolu, ... sinon, ou bien il ne se passera rien, sinon l'écriture se fait soit dans / soit dans ~/
  • L'utilisation de cron se fait via la commande crontab -e qui édite le fichier listant les tâches à effectuer et leurs moments. A priori, crontab -e réalise juste un appel à l'éditeur nano. A la fin de l'édition il est fait mention d'une écriture dans un fichier temporaire, mais il ne s'agit que d'un fichier tampon de sauvegarde. Il y a bien écriture dans le bon fichier.
  • par défaut, cron envoie un mail pour chaque exécution. S'il n'y a pas de serveur mail installé, pas de souci, l'envoi de mail échoue silencieusement. S'il y a un serveur de mail installé et si il y a eg une tâche exécutée toutes les 5 minutes, et bien ça fera un mail expédié toutes les 5 minutes + l'éventuel retour automatique. Pour éviter cela, insérer MAILTO="" à l'édition.


Exemples

# lance prog.py toutes les 5 minutes 
*/5 * * * python3 /home/user01/python/prog.py


Liens


Pages connexes