Come cambiare cron shell (da sh a bash)?


70

È possibile eseguire comandi in crontab con bash anziché sh? So che puoi passare comandi con cui bash -c, ma questo è fastidioso e non uso mai sh comunque.


non so davvero cosa stai facendo (non hai familiarità con cron) ma se stai eseguendo uno script, l'aggiunta di uno shebang dovrebbe funzionare, non sono sicuro che sia corretto.
Alvin Wong,

Risposte:


103

Dovresti essere in grado di impostare la variabile di ambiente prima dell'esecuzione del processo cron:

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

2
è anche possibile farlo leggere .bashrc?
Fluffy

3
@Fluffy .bashrcè - per definizione - per shell interattive ; quindi, se avviato tramite cron, bashleggerà questo file solo se si tratta di una shell interattiva .
umläute,

18
Sono stato in grado di farlo leggere bashrc aggiungendo BASH_ENV="/root/.bashrc". Grazie
Fluffy

2
@Fluffy dovresti dare una risposta
vol7ron,

2
Per quanto riguarda .bashrc, bash -lsembra utile, blog.endpoint.com/2015/02/cron-wrapper-keep-your-cron-jobs.html
mpapec
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.