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.