Variable d’environnement PATH et crontab
Si vous utilisez crontab pour vos tâche, faites attention à un détail : le PATH.
il y a un fichier de conf que j’ai pas réussi à faire fonctionner dans /etc/crontab, si vous y arrivez tant mieux sinon éditez votre cron de la sorte:
1. Version avec PATH défini par tâche:
30 23 * * * PATH=$PATH:/usr/local/bin && export PATH && python /home/penetrator/script.py
2. Version avec variables définies en haut du fichier cron:
# Env SHELL=/bin/bash HOME=/home/prod PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin # Cmd cron 30 23 * * * python /home/penetrator/script.py
$PATH=PATH:/usr/local/bin && export PATH va rajouter /usr/local/bin dans le PATH.
Ayant installé et compilé un programme dans /usr/local/bin et l’utilisant dans script.py, il faut que son chemin soit dans le PATH.
Pour avoir des infos sur l’env de votre cron:
* * * * * PATH=$PATH:/usr/local/bin && export PATH && env > /tmp/cronenv
faites un tail -f /tmp/cronenv pour voir si votre PATH est bien déclaré.
ça peut éviter quelques heures à s’arracher les cheveux pour le debug d’un script…
No related posts.




le plus simple est de définir les variables en haut du fichier cron comme expliqué dans
man 5 crontabsur mes serveurs j’ai au moins ça:
# Env
SHELL=/bin/bash
HOME=/home/prod
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
# Cmd cron
...
PATH=$PATH:/usr/local/bin, pas$PATH=PATH!Et sinon je crois qu’on peut définir une variable juste pour une commande:
PATH=$PATH:/usr/local/bin python /home/penetrator/script.py@gkar, ouais ça aussi c’est bien je le rajoute, thanks
@shnouki , merci je corrige