Comments on: Variable d’environnement PATH et crontab http://sametmax.com/variable-denvironnement-path-et-crontab/ Du code, du cul Sat, 07 Nov 2015 11:08:18 +0000 hourly 1 http://wordpress.org/?v=4.1 By: Sam http://sametmax.com/variable-denvironnement-path-et-crontab/#comment-147825 Wed, 05 Nov 2014 19:47:25 +0000 http://sametmax.com/?p=2741#comment-147825 Il faut éviter les imports (et non les chemins, ce n’est pas du tout pareil), comme la peste en Python. Tout mettre en absolu. Ca ne gène pas la portabilité si le code est bien organisés en modules avec responsabilités séparées.

]]>
By: Guts http://sametmax.com/variable-denvironnement-path-et-crontab/#comment-147821 Wed, 05 Nov 2014 19:05:12 +0000 http://sametmax.com/?p=2741#comment-147821 Bonsoir,

Question de

Je rencontre des difficultés avec la planification de mon script qui doit être lancé dans un environnement virtuel avec des chemins relatifs dedans (vers la BD et surtout les autres modules) :
– lorsque j’indique “en dur” tous les chemins contenus dans le script en absolus, que je lance manuellement ou via le cron : OK
– lorsque les chemins sont indiqués en relatif et que je lance manuellement : OK
– lorsque les chemins sont indiqués en relatif et c’est lancé via le cron : ça plante !

Nous avons commencé notre développement en chemins absolus et ça roulait donc bien avec ceci dans crontab -e :

0 1,13 * * * /home/$USER/chemin_vers_virtualenv /home/$USER/chemin_vers_script.py

Depuis qu’on a passé les chemins en relatif (pour des besoins de portabilité et puis pour faire plus propre), ça merdouille au moment des imports relatifs (‘from . import models’). Du coup, j’essaye d’appliquer la logique indiquée et je me dis que je dois mettre ça :

0 1,13 * * * PATH=$PATH:/home/$USER/chemin_vers_virtualenv /home/$USER/chemin_vers_script.py

Mais je me dis que je passe à côté de quelque chose et je comprends pas pourquoi le cron fait merder quand c’est en chemin relatif.
Sur le principe, si j’ai bien compris : on lui file les horaires et la fréquence, le chemin vers l’environnement d’exécution (ici un virtualenv) et le script à lancer ?

]]>
By: Max http://sametmax.com/variable-denvironnement-path-et-crontab/#comment-2657 Fri, 26 Oct 2012 15:35:01 +0000 http://sametmax.com/?p=2741#comment-2657 @gkar, ouais ça aussi c’est bien je le rajoute, thanks

@shnouki , merci je corrige

]]>
By: Schnouki http://sametmax.com/variable-denvironnement-path-et-crontab/#comment-2652 Fri, 26 Oct 2012 13:39:00 +0000 http://sametmax.com/?p=2741#comment-2652 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

]]>
By: Gkar http://sametmax.com/variable-denvironnement-path-et-crontab/#comment-2651 Fri, 26 Oct 2012 13:13:09 +0000 http://sametmax.com/?p=2741#comment-2651 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
...

]]>