Cron: Fehlende Umgebungsvariable beim Abarbeiten eines jobs

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
Benutzeravatar
xman
Beiträge: 19
Registriert: 04.02.2004 22:12:47

Cron: Fehlende Umgebungsvariable beim Abarbeiten eines jobs

Beitrag von xman » 17.06.2004 09:44:14

Hallo,

ich habe ein Script, welches mittels cvs ein checkout durchführt. Starte ich das Script unter dem Benutzer, dem auch die crontab gehört, wird die Variable $CVSROOT zum auschecken benutzt.
Wird das Script von cron aufgerufen, erhalte ich eine eMail, das die Variable CVSROOT nicht gesetzt ist.

Weis jemand, ob die Umgebungsvariablen der User beim Ausführen der cronjobs gesetzt werden, oder nicht?

Danke.
Torsten.

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Beitrag von pdreker » 17.06.2004 10:45:11

Umgebungsvariablen werden von Prozess zu Prozess "vererbt". Wenn Du die Variablen also in z.B. Deiner bashrc gesetzt hast, sind sie bei dem Cron Job nicht da.

Lösung: Schreibe ein kurzes Shellskript, dass den benötigten programmaufruf enthält und setze dort vorher die Environments passend. Aus der Crontab rufst Du dann das Skript auf.

Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de

Benutzeravatar
xman
Beiträge: 19
Registriert: 04.02.2004 22:12:47

Beitrag von xman » 17.06.2004 11:21:31

Du hast natürlich recht. Die Variablen sind in der ~/.bash_profile definiert. Da kann das im cron nicht gesetzt sein.

Danke.

Antworten