[NAS Typ:] alle
[Firmware:] (ab 2.0.0)
[Getestet:] ja, mit TS-109
[Sonstige Modifikationen:] Anmeldungsdaten im Script anpassen
[Autor:] dyndnscommunity angepaßt durch Eraser-EMC2- / Stefan
1.) Im Script muß der "username", "password" und "mydomain" gegen den eigenen DynDNS-Adresse ersetzt werden.
2.) Das Script auf das NAS kopieren, vorzugsweise in eine Freigabe, in der nur der Admin Zugriff hat.
3.) Dem Script die Ausführ-Berechtigung geben : chmod +x dyndns.sh
4.) Script in die crontab installieren : zB.: ./dyndns.sh install 5
5 entspricht einem Aktualisierungsinterval von 5 Minuten
#!/bin/sh
case $1 in
"install")
INSTPATH=`pwd`
echo "*/$2 * * * * $INSTPATH/dyndns.sh check" >> /etc/config/crontab
crontab /etc/config/crontab
;;
"help")
echo "Zum installieren des scripts \"/share/HDA_DATA/Scripts/dyndns.sh install 12\""
echo "\"Scripts\" ist die Beispiel-Freigabe bzw. Ordner für das Script."
echo "12 ist Anzahl der Aufrufe in einer Stunde (5 Minuten Intervall)"
echo "!!! Der Aufruf sollte nicht zu oft erfolgen, da sonst die Adresse gesperrt werd kann !!!"
;;
*)
USERNAME="username"
PASSWORD="passwort"
HOSTS="mydomain1 mydomain2"
wget "http://checkip.dyndns.com/" -O .dyndnsNewAddr.html >/dev/null 2>&1
for HOST in $HOSTS
do
cmp -s .dyndnsNewAddr.html .dyndnsAddr.$HOST.html >/dev/null 2>&1
if [[ "$?" != "0" ]]; then
wget "http://$USERNAME:$PASSWORD@members.dyndns.org/nic/update?hostname=$HOST&wildcard=NOCHG&backmx=NOCHG" -O .dyndnsResponse.$HOST.txt >/dev/null 2>&1
grep -E "good|nochg" .dyndnsResponse.$HOST.txt >/dev/null 2>&1
if [[ "$?" == "0" ]]; then
cp .dyndnsNewAddr.html .dyndnsAddr.$HOST.html >/dev/null 2>&1
RESPONSE=`cat .dyndnsResponse.$HOST.txt`
/sbin/write_log "$HOST : $RESPONSE" 4;
fi
cat .dyndnsResponse.$HOST.txt
echo
else
echo no change
fi
done
;;
esac
Alles anzeigen
!!! Nutzung auf eigene Gefahr !!!
EDIT
1.) kleine Anpassung für die Installation, Zip-Datei eingefügt
EDIT (29-10-2009)
2.) Den Befehl "diff" gegen "cmp -s" getauscht, da "diff" nicht auf dem NAS exisitiert.
Es ist mir beim Testen nicht aufgefallen.