Variable d’environnement PATH et crontab 3


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…


Leave a comment

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

3 thoughts on “Variable d’environnement PATH et crontab

  • Gkar

    le plus simple est de définir les variables en haut du fichier cron comme expliqué dans man 5 crontab

    sur 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
    ...

  • Schnouki

    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

  • Max Post author

    @gkar, ouais ça aussi c’est bien je le rajoute, thanks

    @shnouki , merci je corrige