Re: Bash Cronjob starten mit Befehl source

Autor: Stephan Gromer <stephan_at_gromer-online.de>
Datum: Sun, 10 May 2015 10:56:41 +0200
Lieber Andreas

Sofern Du Kontrolle über den Rechner hast und Du Race conditions sowie
Fremdzugriffe auf die Datei ausschließen kannst, wie wäre es mit einer
Datei als Variablenzwischenspeicher?


#/bin/sh
IP_DATEI="/tmp/oldip"      # Hier wird die IP zwischengespeichert
OLD_IP="0.0.0.0"            # Defaultwert
if [ -r "$IP_DATEI" ]          # Datei vorhanden und lesbar?
then
   OLD_IP=$(cat "$IP_DATEI")    # Alte IP einlesen (überschreibt die
0.0.0.0)
fi
echo "Alte IP: $OLD_IP"

# neue Ip bestimmen
NEW_IP="173.194.112.119" # Für Testzwecke

echo "$NEW_IP" >"$IP_DATEI"    # New_IP als Alte speichern (abhg. vom
geplanten vorgehen)
echo "$NEW_IP nach $IP_DATEI geschrieben"


LG
 Stephan



Am 10.05.2015 um 00:47 schrieb preludi_at_web.de:
> ich möchte ein Bash Script in einem Cronjob ausführen. Das Script lädt
> meine externe IP Adresse in eine Cloud.
> Zwecks Vergleich alter IP Adresse und möglicher neuer IP Adresse
> speichere ich die alte IP Adresse in einer Variable $IP_alt.
>  
> Nach Abarbeiten des Scripts muß natürlich diese $IP_alt weiterhin
> verfügbar sein. Ich mache das mit dem Befehl export (bzw. declare -x).
> Damit würde die Variable nur in einer Subshell zur Verfügung stehen,
> nicht jedoch bei nächster Ausführung des gleichen Scripts im Cronjob
> (...ich hoffe, ich habe das so richtig verstanden, ich bin nur Hobby
> Linuxer).
>  
> Damit die Variable $IP_alt bei der nächsten Scriptausführung verfügbar
> ist, starte ich dieses statt mit bash <script.sh> jetzt mit source
> <script.sh>. Alles funktioniert wunderbar bei Ausführung im Terminal.
> Es funktioniert aber nicht innerhalb eines cronjobs.
>  
> crontab wie folgt:
> # m h  dom mon dow   command
> * * * * * *source* /script.sh
>  
> Das Problem liegt bei "source". Schreibe ich hier "bash" läuft das
> Script, die Variable $IP_alt steht aber nicht zu Verfügung.
>  

-- 
Priv.-Doz. Dr. med. Stephan Gromer
Schälzigweg 64 / D-68723 Schwetzingen
Tel.: +49 (6202) 855038 Fax.: +49 (6202) 855043
Mobil: +49 (152) 21595557 URL: http://www.gromer-online.de

-- 
UUGRN e.V. http://www.uugrn.org/
http://mailman.uugrn.org/mailman/listinfo/uugrn
Wiki: https://wiki.uugrn.org/UUGRN:Mailingliste
Archiv: http://lists.uugrn.org/
Empfangen am 10.05.2015

Dieses Archiv wurde generiert von hypermail 2.2.0 : 10.05.2015 CEST