Hallo Leute! In einem cronjob stehen ja die meisten Umgebungsvariablen nicht zur Verfügung. Ich habe eine Umgebungsvariable MODULESDIR, in der ein Pfad gespeichert ist und die in einem cronjob zur Verfügung stehen soll. Ich könnte die Variable natürlich in der crontab neu setzen, allerdings müßte ich sie dann einmal in der /etc/profile.local und zusätzlich in der crontab aktuell halten, was fehleranfällig ist. Gibt es eine Möglichkeit, innerhalb der crontab die Umgebungsvariable auf den Wert zu setzen, den sie außerhalb hat? Ich stelle mir so etwas wie MODULESDIR=$MODULESDIR vor. Das funktioniert aber nicht (wäre vielleicht auch zu schön gewesen, um wahr zu sein). Ich habe in der manpage nichts gefunden. Im Archiv der Liste fand ich MODULESDIR=${MODULESDIR} nur funktioniert das bei mir auch nicht. Gibt es da eine Möglichkeit? Vielen Dank und viele Grüße Lutz
Hallo Lutz, On Wednesday 10 March 2004 19:18, Lutz Gehlen wrote:
In einem cronjob stehen ja die meisten Umgebungsvariablen nicht zur Verfügung. Ich habe eine Umgebungsvariable MODULESDIR, in der ein Pfad gespeichert ist und die in einem cronjob zur Verfügung stehen soll. Ich könnte die Variable natürlich in der crontab neu setzen, allerdings müßte ich sie dann einmal in der /etc/profile.local und zusätzlich in der crontab aktuell halten, was fehleranfällig ist.
Wenn Dein Cronjob ein Shellskript aufruft, hättest Du die Möglichkeit am
Anfang des Skripts eine Zeile wie die folgende zu verwenden:
. /etc/profile.local
Der Punkt sorgt dafür, daß der Inhalt der Datei /etc/profile.local eingelesen
wird. Damit stehen dann auch die darin definierten Variablen zur Verfügung.
Der Vorgang nennt sich glaube ich "sourcen" näheres findest Du bestimmt in der
Bash Info Seite (info:bash).
Liebe Grüße,
Andreas
--
Andreas Otto
Hallo Andreas! Am Mittwoch, 10. März 2004 19:50 schrieb Andreas Otto:
On Wednesday 10 March 2004 19:18, Lutz Gehlen wrote:
In einem cronjob stehen ja die meisten Umgebungsvariablen nicht zur Verfügung. Ich habe eine Umgebungsvariable MODULESDIR, in der ein Pfad gespeichert ist und die in einem cronjob zur Verfügung stehen soll. Ich könnte die Variable natürlich in der crontab neu setzen, allerdings müßte ich sie dann einmal in der /etc/profile.local und zusätzlich in der crontab aktuell halten, was fehleranfällig ist.
Wenn Dein Cronjob ein Shellskript aufruft, hättest Du die Möglichkeit am Anfang des Skripts eine Zeile wie die folgende zu verwenden:
. /etc/profile.local
Vielen Dank für die schnelle Antwort. Es handelt sich bei mir um ein Perlskript. Ich hatte zuerst überlegt, ein Shellskript zu schreiben, welches das source-Kommando und dann mein Perlskript aufruft. Aber dann ist mir eingefallen, daß ich das ja auch direkt in die crontab schreiben kann. Mein Aufruf lautet jetzt 41 2 * * * source /etc/profile.local;/pfad/meinskript.pl So klappt's. Nochmals danke und viele Grüße Lutz
participants (2)
-
Andreas Otto
-
Lutz Gehlen