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: