Dies ist eine mobil optimierte Seite, die schnell lädt. Wenn Sie die Seite ohne Optimierung laden möchten, dann klicken Sie auf diesen Text.

Wie Dyndns überwachen, Fritzbox hinter Fritzbox

    Nobody is reading this thread right now.
AW: Wie Dyndns überwachen, Fritzbox hinter Fritzbox

@Tottbeck

Habe bei mir mehrmals getestet mit verschiedenen LogfileGrößen - hat alles gefunzt wie es soll.

Kann es sein, daß bei dir im Script irgendwas durcheinander gekommen ist?
Denn die letzte Zeile aus deinem Log kann/sollte es so nicht geben:
......
+ [ 100 -gt 0 ]
+ echo 2012-02-04 13:38:13 - DYN-IP ist:84.63.xx.xx die Host-IP ist:84.63.xx.xx alles OK!
2012-02-04 13:38:13 - DYN-IP ist:84.63.xx.xx die Host-IP ist:84.63.xx.xx alles OK
root@fritz:/var/mod/root#
Hinter dem "OK" steht im Script immer ein Ausrufezeichen.
In dieser Log-Ausgabe aber nicht, weiterhin dürfte diese Zeile gar nicht ausgegeben werden.

Bei mir sieht der Log so aus:
Code:
.....
+ cut -f 1
+ LOGGROESSE=24
+ sleep 1
+ [ 110 -le 24 ]
+ [ 110 -gt 24 ]
+ echo 2012-02-07 07:55:58 - DYN-IP ist:393.399.427.576  die Host-IP ist:393.399.427.576 alles OK!
root@fritz:/data#


@all
Hat noch jemand diesen Fehler?



Gruß Superhansi
 
AW: Wie Dyndns überwachen, Fritzbox hinter Fritzbox

Ich habe den Bash nochmal laufen lassen, direkt nach dem löschen der Logdatei

Den Output habe ich aus dem DOS-Fenster komplett rauskopiert, also mit der ECHO-Ausgabe.
Soll ich die Alles-OK Meldungen mal nummerieren, damit man weiß wo er genau herläuft ?
Edit: habe das gerade noch getestet. Beim 1.Mal kommt durch die 3. Echo-OK Zeile, und beim 2. Aufruf durch die 2. ECHO-OK Zeile.
Ich mache auch noch mal ein Freetz-Neustart wenn gerade kein Traffic ist.

+ ping -c 1 xx.dyndns.tv
+ sed -n 1p
+ sed -e s/(//g -e s/)//g
+ cut -d -f3
+ cut -d : -f1
+ DYNIP=84.63.xx.xx
+ [ -z 84.63.xx.xx ]
+ [ 84.63.xx.xx = 84.63.xx.xx ]
+ [ -f /var/media/ftp/uStor01/DynUpdateCheck.log ]
+ echo 2012-02-07 19:28:29 - DYN-IP ist:84.63.xx.xx die Host-IP ist:84.63.xx
.xx alles OK!
2012-02-07 19:28:29 - DYN-IP ist:84.63.xx.xx die Host-IP ist:84.63.xx.xx al
les OKroot@fritz:/var/mod/root#

Hier der Output beim 2. Aufruf.
+ ping -c 1 xx.dyndns.tv
+ cut -d : -f1
+ DYNIP=84.63.xx.xx
+ [ -z 84.63.xx.xx ]
+ [ 84.63.xx.xx = 84.63.xx.xx ]
+ [ -f /var/media/ftp/uStor01/DynUpdateCheck.log ]
+ du -k /var/media/ftp/uStor01/DynUpdateCheck.log
+ cut -f 1
+ LOGGROESSE=0
+ sleep 1
+ [ 100 -le 0 ]
+ [ 100 -gt 0 ]
+ echo 2012-02-07 19:33:32 - DYN-IP ist:84.63.xx.xx die Host-IP ist:84.63.xx
.168 alles OK!
2012-02-07 19:33:32 - DYN-IP ist:84.63.xx.xx die Host-IP ist:84.63.xx.xx al
les OKroot@fritz:/var/mod/root#

@Skywalker:
Der 5 Minuten Zyklus ist evtl. etwas übertrieben, ist beim Testen aber angenehmer, da man nicht so lange warten muß ;-)
Wenn alles läuft kann man das ja noch runtertakten. Das sollte mit dem Logfile aber nichts zu tun haben.

Danke und Gruß
Tottbeck
 
Zuletzt bearbeitet:
AW: Wie Dyndns überwachen, Fritzbox hinter Fritzbox

Ich kann immer noch nicht nachvollziehen wo die letzte Zeile her kommen soll " ... alles OK" ???
"...alles OK" ohne Ausrufezeichen gibt es doch im ganzen Script nicht, nur 3mal "..alles OK!".

Hier nochmal das Script, zur Kontrolle:
Code:
#!/bin/sh 

############################## config - Bereich ######################################################
###  Usernamen, PW und Dyndns-Adresse eintragen  ############

USERNAME="name"
PASSW="passwort"
DYNADDI="dyn.dyndns.org"
LOGPFAD=/var/media/ftp/uStor01/DynUpdateCheck.log    # SpeicherOrt des LogFile
MAXLOGSIZE="100"     # max Logfilegroesse in KB

### Dyn-Dienst hier eintragen, 3 Moeglichkeiten - "dyndns" oder "no-ip" oder "dnsomatic" ############
DYNDIENST="dyndns"


#### wenn E-Mail-Benachrichtigung gewuenscht,
## dann Zugangsdaten hier eintragen
EMAIL="no"                        # und hier "yes" eintragen
FROMMAIL="sender@gmx.de"        # E-Mail Versender
TOMAIL="empfaenger@gmx.de"      # E-Mail-Empfänger
MAILSRV="mail.gmx.net"          # MAIL-SMTP-Server
PWMAIL="password"               # Passwort vom Mailkonto

############################### config Ende ###############################################################
#############################################################################################################

DATUM=`date +%Y-%m-%d\ %H:%M:%S`
HOSTIP=$(wget -q -O - http://myip.dnsomatic.com)
[ -z $HOSTIP ] && HOSTIP=$(wget -q -O - http://www.whatismyip.org)
[ -z $HOSTIP ] && HOSTIP=`wget -q -O - http://checkip.dyndns.org | grep IP | expr \`awk '{print $6}'\` : '\([0-9.]*\)'`

sleep 1

[ $DYNDIENST = "dyndns" ] && URL="http://$USERNAME:$PASSW@members.dyndns.org/nic/update?hostname=$DYNADDI&myip=$HOSTIP"
[ $DYNDIENST = "dnsomatic" ] && URL="http://$USERNAME:$PASSW@updates.dnsomatic.com/nic/update?hostname=all.dnsomatic.com&myip=$HOSTIP"
[ $DYNDIENST = "no-ip" ] && URL="http://$USERNAME:$PASSW@dynupdate.no-ip.com/nic/update?hostname=$DYNADDI&myip=$HOSTIP"
 
if [ ! -z $HOSTIP ]; then
    DYNIP=$(ping -c 1 "$DYNADDI" | sed -n 1p | sed -e 's/(//g' -e 's/)//g' | cut -d ' ' -f3 | cut -d ':' -f1)

        if [ -z $DYNIP ]; then
            echo "$DATUM - keine DYN-IP bekommen. Updatepruefung kann nicht ausgefuehrt werden. " >> $LOGPFAD
        else
    
                if [ $DYNIP = $HOSTIP ]; then
                       
                        if [ -f $LOGPFAD ]; then
                            LOGGROESSE=$(du -k $LOGPFAD | cut -f 1 )
                            sleep 1
                            
                                if [ $MAXLOGSIZE -le $LOGGROESSE ]; then
                                
                                        if [ $EMAIL = "yes" ]; then
                                            mailer \
                                            -s "DynUpdateCheck max Logfilegroesse erreicht - Logfile wird geloescht" \
                                            -d "$LOGPFAD" \
                                            -f $FROMMAIL \
                                            -t $TOMAIL \
                                            -m $MAILSRV \
                                            -a $FROMMAIL \
                                            -w $PWMAIL    
    
                                            sleep 15                                        
                                        fi     
                        
                                    echo "$DATUM - DYN-IP ist:$DYNIP  die Host-IP ist:$HOSTIP alles OK!" > $LOGPFAD
                                fi
                            
                            [ $MAXLOGSIZE -gt $LOGGROESSE ] && echo "$DATUM - DYN-IP ist:$DYNIP  die Host-IP ist:$HOSTIP alles OK!" >> $LOGPFAD
                           else
                            echo "$DATUM - DYN-IP ist:$DYNIP  die Host-IP ist:$HOSTIP alles OK!" >> $LOGPFAD
                        fi
                    
                else
                    echo "$DATUM - DYN-IP ist:$DYNIP  die Host-IP ist:$HOSTIP ein Update wird durchgefuehrt!" >> $LOGPFAD
                       UPDATE=$(wget -q -O - "$URL") 
                    echo "$UPDATE" > /tmp/DynTMP.log
                    sleep 2
                          MELDUNG=$(cut -d' ' -f 1 /tmp/DynTMP.log)

                        if [ $MELDUNG = "good" ]; then
                            echo "$DATUM - $UPDATE Dyn-Update ist erfolgt - Script Ende" >> $LOGPFAD
                            
                                if [ $EMAIL = "yes" ]; then
                                    mailer \
                                    -s "Dynamic DNS Probleme - DynUpdate ist erfolgt Meldung: $UPDATE" \
                                    -f $FROMMAIL \
                                    -t $TOMAIL \
                                    -m $MAILSRV \
                                    -a $FROMMAIL \
                                    -w $PWMAIL                                                 
                                         
                                fi
                        else
                            echo "$DATUM - Dyn-Update war nicht erfolgreich." >> $LOGPFAD
                            
                                if [ $EMAIL = "yes" ]; then
                                    mailer \
                                    -s "Dynamic DNS Probleme - DynUpdate war nicht erfolgreich Meldung: $UPDATE" \
                                    -f $FROMMAIL \
                                    -t $TOMAIL \
                                    -m $MAILSRV \
                                    -a $FROMMAIL \
                                    -w $PWMAIL                                                 
                                fi
                                                        
                        fi

                fi
        fi

else
    echo "$DATUM Keine Host-IP bekommen! Eventuell nicht online?" >> $LOGPFAD  

fi

Außerdem kann die Logfilegröße nicht "0" sein, wenn das Logfile nicht vorhanden ist dann wird die Größe nicht geprüft
und ansonsten steht immer was drin.

Code:
.....
if [ -f $LOGPFAD ]; then                             
    LOGGROESSE=$(du -k $LOGPFAD | cut -f 1 )

Edit:
Habe mir gerade deine letzten log's noch mal angesehen.
Der erste ist nach dem manuellen löschen des Logfile - da wird die Größe nicht berechnet, weil kein Logfile vorhanden ist.

Beim 2. Durchlauf hat der logfile eine Größe von "0" (was normalerweise gar nicht geht).
Weil beim ersten Durchlauf das passieren sollte:
Code:
if [ -f $LOGPFAD ]; then
                           #das hier wird nicht ausgeführt (wegen "-f" = falsch)
else
                           [B] echo "$DATUM - DYN-IP ist:$DYNIP  die Host-IP ist:$HOSTIP alles OK!" >> $LOGPFAD[/B]
fi
Das fett geschriebene wird ausgeführt (demzufolge wird das was in den Ausführungszeichen steht in den Logfile geschrieben),
somit kann der Logfile nicht mehr 0 Byte groß sein.
Aber bei dir wird nichts in den Logfile geschrieben - warum?


Hänge bitte dein Script mal hier an. (ohne config-Teil)



Gruß Superhansi
 
Zuletzt bearbeitet:
AW: Wie Dyndns überwachen, Fritzbox hinter Fritzbox

Das Script stimmt überein, habe per filecompare verglichen.
Zunächst hat es ja auch funktioniert, blieb dann aber bei ca. 20k stehen.
Nachdem ich den File gelöscht habe, wurde wieder ein neuer angelegt, aber es blieb nach einigen Einträgen wieder hängen. Danach wurde dann nur noch ein leerer File angelegt.
Ich habe schon den cccam.log gelöscht, von wegen Platzmangel.

Ich werde aber erstmal ein Reboot machen, nicht das sich da etwas intern verrannt hat und wir suchen hier an der völlig falschen Stelle.

Danke für Deine Bemühungen
Tottback
 
AW: Wie Dyndns überwachen, Fritzbox hinter Fritzbox

gibt es das Script auch für Fritzboxen die als INET und CS Server laufen ?


Danke
 
AW: Wie Dyndns überwachen, Fritzbox hinter Fritzbox

Das Script aus Post #398 von Superhansi ist das richtige oder? Benötige ich wget im freetz oder kann ich es so einbauen?


Danke
 
AW: Wie Dyndns überwachen, Fritzbox hinter Fritzbox

Das Script ist halt hier im Thread entstanden. Läuft aber auch auf anderen Boxen,
z.B. auf ner Dream, man brauch nur crond (und wget) um es zu starten.

Wobei ich gerade am basteln bin, es ohne crond zum laufen zu kriegen.


Gruß Superhansi
 
AW: Wie Dyndns überwachen, Fritzbox hinter Fritzbox

Sorry für die dumme Frage, ist wget gleich chrond? Weil chrond habe ich bereits am laufen.
 
AW: Wie Dyndns überwachen, Fritzbox hinter Fritzbox

Nein, wget ist ein eigener "Dienst" im Freetz Image und hat mit Crond nichts zu tun...
 
AW: Wie Dyndns überwachen, Fritzbox hinter Fritzbox

hab das Tool gestern auf meine Fritzbox gepackt, scheint super zu funktionieren. Ob es im Fehlerfall die dydns-Adresse aktualisiert, konnte ich allerdings noch nicht sehen
Aber Log-Datei wird korrekt geschrieben

Danke dafür!
 
AW: Wie Dyndns überwachen, Fritzbox hinter Fritzbox

Wow, das ist genau was ich brauche. Muss allerdings erst ein neues Image
mit wget installieren. Muss ich dann einfach das script ändern, auf den Stück
kopieren und dann die Box neu starten? Hab es noch nicht geschafft alle Seiten
hier zu lesen. Aber das wäre super.

Hab nämlich auch das Problem das sich dyndns oft nicht nach neu IP Vergabe
nicht aktualisiert.

Grüß
Jony
 
AW: Wie Dyndns überwachen, Fritzbox hinter Fritzbox

wget kannst du einfach auf den Stick ins Root packen (steht hier irgendwo, wie man das macht, musst nur von busybox ne binary downloaden, in busybox umbenennen und auf den Stick kopieren).

Genau, das Script im oberen Teil (config) anpassen, auf den Stick kopieren und per Crontab regelmäßig ausführen lassen. Ich lasse es alle 30 Min laufen, theoretisch würde ja auch seltener reicher, je nach Bedarf.
 
AW: Wie Dyndns überwachen, Fritzbox hinter Fritzbox

Link ist nicht mehr aktiv.ist eine kleine Anleitung zu finden.

Nach dem kopieren des Scriptes auf den Stick/Box braucht du nicht neu zu starten - nur daran denken: Rechte auf 755 oder 777 setzen.

Wenn einer die Anleitung zur nachträglichen wget-installation (sollte natürlich auch funktionieren)
gefunden hat, den Link bitte mal posten - ist bestimmt für mehrere interessant.


Gruß Superhansi
 
Zuletzt bearbeitet:
Für die Nutzung dieser Website sind Cookies erforderlich. Du musst diese akzeptieren, um die Website weiter nutzen zu können. Erfahre mehr…