Cron funziona sempre con un ambiente per lo più vuoto. HOME
, LOGNAME
e SHELL
sono impostati; e un PATH
molto limitato . È quindi consigliabile utilizzare percorsi completi per gli eseguibili ed esportare tutte le variabili necessarie nello script quando si utilizza cron
.
Ci sono diversi approcci che puoi usare per impostare le tue variabili d'ambiente in cron
, ma equivalgono tutti a impostarlo nel tuo script.
Approccio 1:
Imposta ogni variabile di cui hai bisogno manualmente nel tuo script.
Approccio 2:
Fonte il tuo profilo:
. $HOME/.bash_profile
(o . $HOME/.profile
)
(Di solito scoprirai che il file sopra fornirà altri file (ad es. ~/.bashrc
--> /etc/bashrc
--> /etc/profile.d/*
) - in caso contrario, puoi procurarti anche quelli.)
Approccio 3:
Salva le variabili di ambiente in un file (esegui come utente desiderato):
env > /path/to/my_env.sh
Quindi importa tramite il tuo script cron:
env - `cat /path/to/my_env.sh` /bin/sh
Approccio 4:
In alcuni casi, puoi impostare cron
globale variabili in /etc/default/cron
. C'è comunque un elemento di rischio in questo, poiché questi saranno impostati per tutti i cron
posti di lavoro.