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.