Comment changer la coquille de cron (sh to bash)?


70

Est-il possible de faire des commandes dans crontab avec bash au lieu de sh? Je sais que vous pouvez passer des commandes avec bash -c, mais c’est ennuyeux et je n’utilise jamais sh de toute façon.


Je ne sais pas vraiment ce que vous faites (vous n'êtes pas familier avec cron), mais si vous exécutez un script, alors l'ajout d'un shebang devrait fonctionner, mais je ne suis pas sûr que je sois correct.
Alvin Wong

Réponses:


103

Vous devriez pouvoir définir la variable d'environnement avant l'exécution du travail cron:

SHELL=/bin/bash
5 0 * * *       $HOME/bin/daily.job >> $HOME/tmp/out 2>&1

2
est-il possible de le faire aussi lire .bashrc?
Fluffy

3
@ Fluffy .bashrcest - par définition - pour les coques interactives ; Ainsi, une fois démarré via cron, bashne lira ce fichier que s'il s'agit d'un shell interactif .
Umlaute

18
J'ai pu le faire lire bashrc en ajoutant BASH_ENV="/root/.bashrc". Merci
Fluffy

2
@ Fluffy, vous devriez y répondre
vol7ron le

2
En ce qui concerne .bashrc, bash -lsemble utile, blog.endpoint.com/2015/02/cron-wrapper-keep-your-cron-jobs.html
mpapec
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.