Je voudrais obtenir la chaîne de commandes suivante en tant que cronjob:
* * * * * source activate myenv3 && cd ~/foo/bar && python sssb.py
Cela fonctionne dans la console, mais je ne reçois aucune sortie du cronjob.
J'ai suivi cette suggestion en la remplaçant par
* * * * * env > /tmp/env.output
pour savoir si env est différent. Je n'ai rien trouvé de pertinent à part que PATH soit différent. Alors j'ai installé
PATH=myPath
* * * * * source activate myenv3 && cd ~/foo/bar && python sssb.py
et cela n'a toujours pas fonctionné. Enfin je l'ai remplacé par
PATH=myPath
* * * * * source activate myenv3 && cd ~/foo/bar && python sssb.py
* * * * * env > /tmp/env.output
et cette fois je n'ai même pas eu le env.output
fichier. Par conséquent, je pense qu'il y a un problème avec ma syntaxe - mais cela ressemble exactement aux suggestions de commandes multiples que j'ai trouvées en ligne.
Que se passe t-il ici? Si ce n'est pas évident, que puis-je faire pour retracer l'erreur?
PATH=/usr/local/anaconda2/envs/myenv3/bin:~/.conda:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
out.err
:
/bin/sh: 6: /usr/local/anaconda2/envs/myenv3/bin/activate: [[: not found
/bin/sh: 15: /usr/local/anaconda2/envs/myenv3/bin/activate: [[: not found
/bin/sh: 17: /usr/local/anaconda2/envs/myenv3/bin/activate: [[: not found
Only bash and zsh are supported
grep SHELL /tmp/env.output
? Exécutez également le premier travail en tant que* * * * * ( . activate myenv3 && cd ~/foo/bar && python sssb.py ) >/tmp/out.err 2>&1
et vérifiez le contenu de/tmp/out.err
out.err
et le CHEMIN réel que j'ai collé dans la question.$(command -v bash) -c ' ... '
- résout tout le tigaboo sans entrer dans les détails (pas si) désordonnés."$(command -v bash)" -c '...'
est inutile.bash -c '...'