Hallo in die Runde,
Meine DS916+ ist "öffentlich" nur über IPv6 erreichbar. Der integrierte DynDNS-Service funktioniert aber nur mit IPv4.
Aus den Weiten des Internets habe ich mir deshalb ein Skript zusammengeklaut, um FreeDNS zu akutalisieren.
Ich selbst bin angemeldet als ein Benutzer, der in der Admin-Gruppe geführt ist.
Dann einen Task angelegt:
- Ausführung als root
- Ausführung alle 5 Minuten, erste Ausführungszeit 00:00, letzte 23:55
- Benutzerdefiniertes Skript:
/bin/bash /volume1/service/freedns/update.sh
Das Skript lässt sich problemlos anlegen, und manuell ausführen. Und es läuft auch automatisch.
Rückmeldungen bekomme ich keine (da im Skript nur in separate Dateien ausgegeben wird, bei Bedarf).
Kurioserweise verschwindet das Skript nach einiger Zeit. Einfach weg, als hätte es das nie gegeben.
Ich kann nicht nachvollziehen, nach welcher Zeit und warum das passiert.
Ich wäre über Tipps dankbar, um den Fehler aufspüren zu können.
Danke
Peer
update.sh
Meine DS916+ ist "öffentlich" nur über IPv6 erreichbar. Der integrierte DynDNS-Service funktioniert aber nur mit IPv4.
Aus den Weiten des Internets habe ich mir deshalb ein Skript zusammengeklaut, um FreeDNS zu akutalisieren.
Ich selbst bin angemeldet als ein Benutzer, der in der Admin-Gruppe geführt ist.
Dann einen Task angelegt:
- Ausführung als root
- Ausführung alle 5 Minuten, erste Ausführungszeit 00:00, letzte 23:55
- Benutzerdefiniertes Skript:
/bin/bash /volume1/service/freedns/update.sh
Das Skript lässt sich problemlos anlegen, und manuell ausführen. Und es läuft auch automatisch.
Rückmeldungen bekomme ich keine (da im Skript nur in separate Dateien ausgegeben wird, bei Bedarf).
Kurioserweise verschwindet das Skript nach einiger Zeit. Einfach weg, als hätte es das nie gegeben.
Ich kann nicht nachvollziehen, nach welcher Zeit und warum das passiert.
Ich wäre über Tipps dankbar, um den Fehler aufspüren zu können.
Danke
Peer
update.sh
Rich (BBCode):
#!/bin/bash
DIR="/volume1/service/freedns"
INTERFACE="eth0"
# get public IPv6
IPV6=$(ip -6 addr list $INTERFACE | grep "global" | cut -d ' ' -f6 | cut -d/ -f1 | sed '/^fd/d' | head -1)
if [ -f $DIR/freedns.ip ]; then
# obtain old IPv6
OLDIPV6=$(sed -n '1p' < $DIR/freedns.ip)
else
# create log file (first execution)
echo -n "$IPV6" > $DIR/freedns.ip
OLDIPV6=""
fi
# send request if necessary
if [ "$OLDIPV6" != "$IPV6" ]; then
curl -s "https://[LoginDaten]@freedns.afraid.org/nic/update?hostname=[MeinDomainName]&myip=$IPV6" > $DIR/update.log
echo -n "$IPV6" > $DIR/freedns.ip
fi