[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Umgebungsvariable bei über Cronjob gestartetem Shellscript nutzen



Hallo,
ich möchte bei einem Überwachungsscript das alle 5 min über crontab gestartet wird und das im Fehlerfall eine Mail versendet, verhindern das die Mail mehr als einmal gesendet wird. Dazu setze ich eine Variable norepeat nach dem ersten Auftreten des Fehlers (export norepeat="1") - die beim nächsten Lauf des Scripts ausgewertet wird und ein mehrfaches Versenden der Mail verhindern soll. Nachdem ich herausgefunden habe, dass man das Script mit source ... starten muss, damit es in der aktuellen Shell läuft, funktioniert es bei manuellem Start auch. Auch in der Crontab starte ich das Script nun mit source /Pfad zum Script/script.sh. Hier ist die Variable beim nächsten Lauf nicht verfügbar. Inzwischen habe ich auch gelernt das es bei Corn keine Umgebung gibt - deshalb habe ich oben ins Script (unter der Zeile #! /bin/bash) folgende Zeilen eingetragen (wurde in einigen Foren empfohlen).
. /etc/profile
. ~/.profile
Leider funktioniert es immer noch nicht - beim wiederholten Lauf des Scripts ist die Umgebungsvariable nicht definiert.

Wie kann ich das Problem lösen (ich möchte möglichst keine Datei zum zwischenspeichern des Wertes nutzen)? Warum funktioniert das mit dem Vorgeben der Profile oben im Script nicht - obwohl andere User (mit anderen Linuxen) damit Erfolg hatten? Was ist eurer Meinung nach die eleganteste Methode Variablen über die Laufzeit eines Scripts hinaus "aufzubewahren"?

Gruß

Michael



Reply to: