Cron läuft immer mit einer größtenteils leeren Umgebung. HOME
, LOGNAME
, und SHELL
eingestellt sind; und ein sehr begrenztes PATH
. Es ist daher ratsam, vollständige Pfade zu ausführbaren Dateien zu verwenden und alle Variablen zu exportieren, die Sie in Ihrem Skript benötigen, wenn Sie cron
verwenden .
Es gibt mehrere Ansätze, die Sie verwenden können, um Ihre Umgebungsvariablen in cron
festzulegen , aber sie alle laufen darauf hinaus, es in Ihrem Skript festzulegen.
Ansatz 1:
Legen Sie jede benötigte Variable manuell in Ihrem Skript fest.
Ansatz 2:
Quelle für Ihr Profil:
. $HOME/.bash_profile
(oder . $HOME/.profile
)
(Sie werden normalerweise feststellen, dass die obige Datei andere Dateien enthält (z. B. ~/.bashrc
--> /etc/bashrc
--> /etc/profile.d/*
) - falls nicht, können Sie diese ebenfalls beziehen.)
Ansatz 3:
Speichern Sie Ihre Umgebungsvariablen in einer Datei (als gewünschter Benutzer ausführen):
env > /path/to/my_env.sh
Importieren Sie dann über Ihr Cron-Skript:
env - `cat /path/to/my_env.sh` /bin/sh
Ansatz 4:
In manchen Fällen können Sie global cron
setzen Variablen in /etc/default/cron
. Dies birgt jedoch ein gewisses Risiko, da diese für alle cron
festgelegt werden Arbeitsplätze.