[Frage] DynDNS bei FRITZ!Box 7270 hinter KabelRouter

nicht rund.

Also doch Variante 1 ...

1. Am Anfang (vor dem ping) mußt Du schon noch der Variablen DOMAIN Deinen Domainnamen zuweisen, sonst kann das Ping die aktuelle Adresse in DNS nicht ermitteln.

2. sleep erwartet die Zeit in Sekunden, wenn man keine Einheit angibt.

3. Mach mal das letzte Ampersand in der Datei (hinter dem 'done') weg ... ich verstehe den Sinn derzeit nicht.

4. Wenn Du noch das echo vor dem sleep stehen hast, was sagt die Shell denn da zu dem Wert von $SLEEPTIME ?

Eigentlich kann das nur irgendein Tippfehler sein ...
 
nslookup ist doch nun in meinem Script garnicht mehr drin?
Parallel geschrieben ... egal.

Wenn das ohne myip-Parameter nicht klappt, stimmt aber die FAQ bei selfhost.eu nicht, Zitat: "[optional] myip=[aktuelle IP Adresse]".

Ich halte jetzt erst einmal die Klappe und warte auf eine neue Version Deines Skripts.

Die automatische Aktivierung der Skripts bei einem Neustart der Box ist doch erst dann eine Baustelle, wenn das Skript richtig läuft, oder ?

Bis dahin erinnere ich Dich noch einmal an die Möglichkeit des Debuggens mit der "-x"-Option der Shell ... damit dürfte man ziemlich schnell sehen, warum das sleep nicht richtig arbeitet.
 
Also dann habe ich der FRITZ nun mal diesen Code eingeflöst:

Code:
#!/bin/sh
SLEEPTIME=1800
MAXSLEEPCOUNT=2880
DOMAIN=gindler1.selfhost.eu

IP_ADDR_RE="[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}"

r=`ping -c 1 $DOMAIN 2> /dev/null`
if ([ $? ] && [ "$r" != "" ])
then
registered=`echo $r | grep -o 'from .* ' | grep -o $IP_ADDR_RE`
echo $registered currently registered
else
registered="0.0.0.0"
echo No IP address registered
fi

sleepcount=0

while :; do
current=$(wget -O - http://checkip.dyndns.org|sed s/[^0-9.]//g)
[ "$current" != "$registered" ] && {
httpsdl -O /dev/null https://carol.selfhost.de/update?username=MEINBENUTZERNAME\&password=MEINPASSWORT\&myip=$current &&
registered=$current
sleepcount=0
}
echo sleeping $SLEEPTIME seconds
sleep $SLEEPTIME

sleepcount=$((sleepcount+1))

if ([ "$sleepcount" -ge "$MAXSLEEPCOUNT" ])
then
echo To many sleepcounts ... will call update alltough IP has not changed
`httpsdl -O /dev/null https://carol.selfhost.de/update?username=MEINBENUTZERNAME\&password=MEINPASSWORT\&myip=$current`
sleepcount=0
fi
done

Ergebnis:
Code:
# sh tst.sh
5.158.152.76 currently registered
Connecting to checkip.dyndns.org (216.146.39.70:80)
-                    100% |************************************************************************************|   104   0:00:00 ETA
sleeping seconds
BusyBox v1.19.3 (2012-05-21 13:40:41 CEST) multi-call binary.

Usage: sleep [N]...

Pause for a time equal to the total of the args given, where each arg can
have an optional suffix of (s)econds, (m)inutes, (h)ours, or (d)ays

Connecting to checkip.dyndns.org (216.146.39.70:80)
-                    100% |************************************************************************************|   104   0:00:00 ETA
sleeping seconds
BusyBox v1.19.3 (2012-05-21 13:40:41 CEST) multi-call binary.

Usage: sleep [N]...

Pause for a time equal to the total of the args given, where each arg can
have an optional suffix of (s)econds, (m)inutes, (h)ours, or (d)ays

Connecting to checkip.dyndns.org (216.146.39.70:80)
-                    100% |************************************************************************************|   104   0:00:00 ETA
sleeping seconds
BusyBox v1.19.3 (2012-05-21 13:40:41 CEST) multi-call binary.

Usage: sleep [N]...

Pause for a time equal to the total of the args given, where each arg can
have an optional suffix of (s)econds, (m)inutes, (h)ours, or (d)ays

Connecting to checkip.dyndns.org (216.146.39.70:80)
-                    100% |************************************************************************************|   104   0:00:00 ETA
sleeping seconds

usw, sobald er fertig ist fängt er wieder an. Bis ich mit CTRL+C eingreifen konnte hatte er bestimmt schon 30mal das Spiel gemacht. Aber noch nicht einmal ein Update bei Selfhost ???

Beim echo steht auch garkein Wert für die Wartesekunden????
 
Zuletzt bearbeitet:
Scheine wohl den Fehler beim Sleep zu haben:

Code:
# sh -x tst.sh
+ ME=1800
+ MAXSLEEPCOUNT=2880
+ DOMAIN=gindler1.selfhost.eu
 
Ich habe immer den Code von Kate ins telnet kopiert aber der hat mir immer die erste zeile komplett und 7 zeichen der 2ten zeile abgeschnitten.
Habe es manuell eingefügt und nun pennt er brav seine 1800sek. Jetzt muss ich die ganze sache nur noch als Autostart und mundtot anlegen
 
Scheine wohl den Fehler beim Sleep zu haben:
Da ist das große i in TIME offenbar ein senkrechter Strich ... Copy&Paste aus irgendeiner Quelle ? Wenn ja, wollte da jemand Dich offenbar ärgern ... :)
 
Scheine wohl den Fehler beim Sleep zu haben:
Da ist das große i in TIME offenbar ein senkrechter Strich ... Copy&Paste aus irgendeiner Quelle ? Wenn ja, wollte da jemand Dich offenbar ärgern ... :)

Jetzt muss ich die ganze sache nur noch als Autostart und mundtot anlegen
Dann solltest Du Dir jetzt als erstes die Gretchenfrage stellen, welche Version der Firmware Deine 7270 hat ... die 06.05 kennt keine debug.cfg mehr für den automatischen Start eigener Tasks.
 
Wie muss ich das mit dem Script dann machen wenn ich dann die FRITZ!OS 05.22 wieder drauf habe? Reicht die 5.22 oder muss ich noch weiter zurück?
 
Jetzt muss ich auch noch eine alte Firmware drauf laden? OKe, wollte ich eh schon lange da ich mit der neuen kein WDS mehr habe. Welche Version hat noch WDS und debug.cfg?
Besser nicht ... der AVM-Bug wurde erst in der 74.05.54 behoben. Wenn Du die Fritz!Box mit einer Version < 05.54 ins Internet hängst, ist sie frei zugänglich.

Ob es eine Version für die 7270v3 mit der alten WDS-Variante von AVM und ohne Bug gibt, weiß ich gar nicht ...

Ich würde auf WDS verzichten (wozu brauchst Du das ?) und die 05.54 einspielen. Die hat debug.cfg und keinen Authentifizierungs-Bug.

Nimm die 7270 so schnell wie möglich vom Netz (am besten Du deaktivierst die Weiterleitung des TC7200), wenn hier die Adresse steht (vergiss auch nicht, das selfhost.eu-Passwort zu ändern), ist die Box innerhalb von 15 Sekunden gekapert.
 
Jetzt versteh ich echt die welt nicht mehr. Habe nun von 5.50 auf 5.54 aktualisiert und es dir hier berichten wollen und bemerkte das ich kein internet mehr habe. Mein TC7200 war auch nicht mehr ansprechbar. Mein PC ist direkt an den TC7200 angeschlossen. Aber die FRITZ war erreichbar und hat auch reagiert. dann habe ich die verbindung von FRITZ zu TC7200 getrennt und das internet geht wieder und mein TC7200 ist wieder ansbrechbar, Stecke ich das kabel wieder ein ists inet weg. :confused: :confused: :confused: :confused:

Wird glaub echt zeit das ich für heute vorm PC weg geh ;-)

Was läuft jetzt für ein Film? Neustarts habe ich schon gemacht. Einstellungen sind die gleichen. In der FRITZ ist nirgends ein DHCP aktiviert.

Wie gesagt, steckt das Kabel zwischen TC7200 und FRITZ geht nur noch die FRITZ. Ziehe ich das Kabel geht alles, außer halt eben die FRITZ.

PS: Die FRITZ meldete via Telnet:

Code:
[aha: avm_home_global_save_do_restore] Error: no data in '/var/flash/ahaglobal.cfg'
[AHA] SIGHUP received


[AHA] SIGHUP received


[AHA] SIGHUP received


[aha: avm_home_upper_connection_thread] Error: message received (ret=-1, errno 4, 'Interrupted system call')
[AHA] SIGHUP received


telefon: SIGHUP received!
pbd[1603]: received signal Hangup
pbd[1602]: received signal Hangup
pbd[1598]: received signal Hangup
telefon: SIGHUP received!
pbd[1597]: received signal Terminated
telefon: SIGCHLD PID 1773 received!
telefon: SIGCHLD PID 1620 received!
Jun 15 22:24:43 capiotcp_server[2296]: 

capiotcp_server - Version 0.1.01.05
        TCP/UDP Port = 5031
        MaxCntrl     = 5
        OffsetCntrl  = 0
 
So, FRITZ und TC7200 harmonieren wieder. Im Script wieder ein Fehler entdeckt, es hat immer nur die ersten zwei mal erfolgreich aktualisiert. Jetzt habe ich einfach alles aus dem Script geworfen was mir überflüssig oder kompliziert Vorkamm und siehe da, es tut jetzt genau was es soll und nicht mehr

Code:
#!/bin/sh
SLEEPTIME=15

while :; do
current=$(wget -O - http://checkip.dyndns.org|sed s/[^0-9.]//g)
[ "$current" != "$registered" ] && {
httpsdl -O /dev/null https://carol.selfhost.de/update?username=MEINBENUTZERNAME\&password=MEINPASSWORT\&myip=$current
}
echo sleeping $SLEEPTIME seconds
sleep $SLEEPTIME
done

Warum war das vorher alles so kompliziertz? ;-)

Ich danke dir @PeterPawn
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.