Hallo,
ich möchte einen Befehl ausführen, sobald sich die IP-Adresse eines Dyndns-Hostes geändert hat. Hab bereits ein Skript programmiert, bin mir aber nicht sicher ob es einwandfrei funktioniert, da ich bisher mit Shell Skripten noch nicht gearbeitet habe.
Was ist eure Meinung zu dem Code, ist er sauber programmiert oder könnte man es besser umsetzen?
Gruß Nordwin
ich möchte einen Befehl ausführen, sobald sich die IP-Adresse eines Dyndns-Hostes geändert hat. Hab bereits ein Skript programmiert, bin mir aber nicht sicher ob es einwandfrei funktioniert, da ich bisher mit Shell Skripten noch nicht gearbeitet habe.
Code:
#!/bin/sh
host=friend.dyndns.org # Adresse
wait=300 # Zeit in Sekunden zwischen den Abragen
log=1 # Log Datei in /tmp erstellen (0=aus; 1=ein)
#######################################################################################################
ip=`ping -c 1 "$host" | sed -n 1p | sed -e 's/:.*//g' -e "s/PING $host //g" -e 's/(//g' -e 's/)//g'`
while true; do
ping1=`ping -c 1 "$host" | sed -n 1p | sed -e 's/:.*//g' -e "s/PING $host //g" -e 's/(//g' -e 's/)//g'`
if [ "$ip" != "$ping1" ]; then
#Befehl
if [ $log = "1" ]; then
akt_date=`date +%d.%m.%Y`
akt_time=`date +%H:%M:%S`
echo "Neustart der des Programms am $akt_date um $akt_time Uhr." >> /tmp/dns_log
fi
ip=`ping -c 1 "$host" | sed -n 1p | sed -e 's/:.*//g' -e "s/PING $host //g" -e 's/(//g' -e 's/)//g'`
fi
sleep $wait
done
exit 0
Was ist eure Meinung zu dem Code, ist er sauber programmiert oder könnte man es besser umsetzen?
Gruß Nordwin