.titleBar { margin-bottom: 5px!important; }

[Gelöst] "onlinechanged" wird manchmal nicht ausgeführt

Dieses Thema im Forum "Freetz" wurde erstellt von SaschaBr, 5 März 2011.

  1. SaschaBr

    SaschaBr Aktives Mitglied

    Registriert seit:
    1 Mai 2007
    Beiträge:
    2,234
    Zustimmungen:
    1
    Punkte für Erfolge:
    38
    Ort:
    NRW
    #1 SaschaBr, 5 März 2011
    Zuletzt bearbeitet: 12 Juni 2015
    Hallo Freetz-Gemeinde.

    Ich beobachte bei meiner Box (7270v2-trunk6469) immer wieder mal, das bei der nächtlichen Zwangstrennung meine IP bei DynDNS (via opendd) nicht aktualisiert, und auch das "Reload vsftpd" nicht ausgeführt wird. Beides wird ja via onlinechanged angestoßen. Im Syslog steht dann korrekter Weise auch nichts drinne.

    Ein manuelles Aufrufen von "/bin/onlinechanged online" via Rudi-Shell, oder aber ein "reconnect" über die AVM-Oberfläche aktualisiert dann sofort und unmittelbar meinen DynDNS-Account, und auch vsftpd wird reloaded (also scheint onlinechanged ansich ja zu funktionieren).

    Wie schon gesagt, dies geschieht nur vereinzelt (einmal pro Woche?), meistens aber funktionierts.
    Hat jemand ähnliches beobachtet, bzw. kann mir jemand verraten warum das so ist? Oder kann mir gar jemand verraten, wie ich das beheben kann?

    MFG
    Sascha


    EDIT:
    Mit r6870 wurde das Problem gelöst


    EDIT2:
    Problem besteht doch weiter
     

    Anhänge:

  2. olistudent

    olistudent IPPF-Urgestein

    Registriert seit:
    19 Okt. 2004
    Beiträge:
    14,777
    Zustimmungen:
    10
    Punkte für Erfolge:
    38
    Beruf:
    Softwareentwickler
    Ort:
    Kaiserslautern
    Angestoßen wird das ganze ja durch den multid. Wenn der den Aufruf nicht macht, dann ist das "schlecht". Du hast ja schon geschrieben, dass onlinechanged überhaupt nicht ausgeführt wird?

    Gruß
    Oliver
     
  3. sf3978

    sf3978 IPPF-Promi

    Registriert seit:
    2 Dez. 2007
    Beiträge:
    7,726
    Zustimmungen:
    7
    Punkte für Erfolge:
    38
    Kann es sein, dass deshalb nicht aktualisiert wird, weil opendd und vsftpd die öffentliche IP-Adresse aus dem Internet bekommen (/usr/bin/get_ip -e) und diese nicht immer bzw. nicht schnell genug zur Verfügung steht? Wenn Du willst kann ich dir ein Paket geben, das auch durch das onlinechanged-Ereignis ausgelöst, die aktuelle (gerade geänderte) öffentliche IP-Adresse aber aus der Box bekommt und auf der Box oder auf einem externen Datenträger speichert. Dann hast Du zumindest einen Vergleich.
     
  4. SaschaBr

    SaschaBr Aktives Mitglied

    Registriert seit:
    1 Mai 2007
    Beiträge:
    2,234
    Zustimmungen:
    1
    Punkte für Erfolge:
    38
    Ort:
    NRW
    Ja, scheint so. Beim nächsten reconnect (kann auch die nächste Zwnagstrennung sein) läuft dann (meistens) alles wieder so wie es sein soll.

    Kann ich mir nicht vorstellen. Reload vsftpd wird auch dann ausgeführt, wenn sich die IP-Adresse mal nicht geändert hat (was bei mir auch schon mal vorkommt). Außerdem ist opendd auf "Optionsfeld leer" , also -w (--webcm) konfiguriert, da es durch die doppelte Abfrage mit der Option -e bei mir Probleme gab (siehe hierzu auch http://www.ip-phone-forum.de/showthread.php?t=215342&page=6 ab Post #103).
     
  5. sf3978

    sf3978 IPPF-Promi

    Registriert seit:
    2 Dez. 2007
    Beiträge:
    7,726
    Zustimmungen:
    7
    Punkte für Erfolge:
    38
    OK, verstanden. Da habe ich einen Denkfehler gemacht.
     
  6. RalfFriedl

    RalfFriedl IPPF-Urgestein

    Registriert seit:
    22 Apr. 2007
    Beiträge:
    12,343
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Du kannst ins onlinechanged am Anfang eine Zeile in der Art einbauen:
    Code:
    date >> /var/tmp/onlinechanged.log
    
    Damit siehst Du, ob die Datei überhaupt aufgerufen wird.
    Falls dies nicht passiert, können wir, wie schon Oliver schreibt, nicht viel tun.
    Wenn die Datei ausgeführt wird, aber nicht die Aktionen, die Du erwartest, kannst Du versuchen, noch mehr Debug-Informationen zu sammeln.
     
  7. SaschaBr

    SaschaBr Aktives Mitglied

    Registriert seit:
    1 Mai 2007
    Beiträge:
    2,234
    Zustimmungen:
    1
    Punkte für Erfolge:
    38
    Ort:
    NRW
    #7 SaschaBr, 5 März 2011
    Zuletzt bearbeitet: 5 März 2011
    Habe grade via Telnet mal auf der Box nach onlinechanged gesucht, aber ich habe nichts gefunden, wo ich das "Am Anfang" einbauen hätte können.
    Wie heißt die Datei genau, wo ich das einfügen muss. Oder brauche ich dafür jetzt das onlinechanged.cgi?

    Die Befürchtung hatte ich auch schon, da das ja vom AVM-Teil der Firmware (sprich Multid) angestoßen wird. :-(
     
  8. RalfFriedl

    RalfFriedl IPPF-Urgestein

    Registriert seit:
    22 Apr. 2007
    Beiträge:
    12,343
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Irgendwo hast Du doch die Anweisungen stehen für den DynDNS Update und vsftpd reload, oder passiert das automatisch?

    Du kannst auf jeden Fall bei der Erstellung der Firmware mit fwmod_custom die Datei /bin/onlinechanged ändern.
     
  9. sf3978

    sf3978 IPPF-Promi

    Registriert seit:
    2 Dez. 2007
    Beiträge:
    7,726
    Zustimmungen:
    7
    Punkte für Erfolge:
    38
    In die Datei "trunk/make/opendd/files/root/etc/onlinechanged/run_opendd" könntest Du den Eintrag machen:
    Code:
    #!/bin/sh
    
    . /mod/etc/conf/opendd.cfg
    
    if [ "$1" = "online" -a "$OPENDD_ENABLED" = "yes" ]; then
    	logger -t info Run OpenDD after IP-change.
     	(sleep 5; /mod/etc/init.d/rc.opendd run)&
    fi
    
     
  10. SaschaBr

    SaschaBr Aktives Mitglied

    Registriert seit:
    1 Mai 2007
    Beiträge:
    2,234
    Zustimmungen:
    1
    Punkte für Erfolge:
    38
    Ort:
    NRW
    Was alles ausgeführt werden soll, steht ja hier:
    Code:
    cat /bin/onlinechanged
    #!/bin/sh
    
    PATH=/bin:/usr/bin:/sbin:/usr/sbin
    
    for i in /etc/onlinechanged/* /tmp/onlinechanged /tmp/flash/onlinechanged/*; do
        test -f "$i" && sh "$i" "[email protected]"
    done
    
    ... und bei mir folgendes enthält:
    Code:
    [email protected]:/etc/onlinechanged# ls -l
    -rwxrwxrwx    1 root     root           174 Dec  2 13:32 chrony
    -rw-r--r--    1 root     root           216 Jan 11 20:54 reload_vsftpd
    -rw-r--r--    1 root     root           188 Jan 11 20:54 run_opendd
    -rwxrwxrwx    1 root     root           198 Dec  2 13:32 webdav_net
    
    (Die anderen beiden "Ordner" gibt es bei mir nicht.)


    Ich sehe schon, so ohne weiteres (also ohne bauen und flashen) wird das wohl nichts. Ich habe so langsam den Verdacht, dass die Box es selber gar nicht mitbekommt, das sie "offline" war (laut AVM-Log geschieht diese vorgezogne "Zwangstrennung" innerhalb einer Sekunde).


    @ sf3978:
    Dort steht doch schon drinne, das ein Eintrag in den syslog gemacht werden soll, was ja funktioniert, wenn denn dann aufgerufen:
    Code:
    logger -t info Run OpenDD after IP-change.
    
    Ich habe RalfFriedl so verstanden, das schon an früherer Stelle etwas in den syslog eingetragen werden soll (ob dort überhaupt was gestartet wird, oder ob diese Scripte in den Ordnern nur (aus welchen Gründen auch immer) übersprungen werden).
     
  11. sf3978

    sf3978 IPPF-Promi

    Registriert seit:
    2 Dez. 2007
    Beiträge:
    7,726
    Zustimmungen:
    7
    Punkte für Erfolge:
    38
    Ja, aber nicht das Datum in die Datei "onlinechanged.log".

    Dort stehn die Anweisungen für den DynDNS Update, nicht früher.;)
     
  12. RalfFriedl

    RalfFriedl IPPF-Urgestein

    Registriert seit:
    22 Apr. 2007
    Beiträge:
    12,343
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Dadurch, daß die Dateien aus /bin/onlinechanged mit einer eigenen Shell aufgerufen werden, ist es relativ unwahrscheinlich, daß da noch irgend etwas schief geht. Der Vollständigkeit halber kann man eine Debug-Ausgabe in /bin/onlinechanged selbst einbauen, weil manchmal Fehler auftreten, auch wenn man sie für unwahrscheinlich hält.

    Der Inhalt von /bin/onlinechanged kommt übrigens aus der Datei
    patches/105-onlinechanged.sh.

    Ich vermute aber eher, daß /bin/onlinechanged erst gar nicht aufgerufen wird, und folglich nichts zu machen ist.
     
  13. SaschaBr

    SaschaBr Aktives Mitglied

    Registriert seit:
    1 Mai 2007
    Beiträge:
    2,234
    Zustimmungen:
    1
    Punkte für Erfolge:
    38
    Ort:
    NRW
    #13 SaschaBr, 5 März 2011
    Zuletzt bearbeitet: 5 März 2011
    OK, in einer separaten Log-Datei nicht, das stimmt.
    Ich habe mir jetzt mal folgendes Script zusammen gebastelt:
    Code:
    #!/bin/sh
    
    logger -t info Schreibe Datum in Log-Datei
    date >> /var/media/ftp/LOGS/onlinechanged/onlinechanged.fbt
    
    Habe in "/var/tmp/flash" den Ordner "onlinechanged" angelegt, und das obige Script dort abgelegt. Hiermit wird mir jetzt sowohl im Syslog, als auch in eine Log-Datei auf dem USB-Stick gelogt, wann onlinechanged gearbeitet hat.

    EDIT
    Das vermute ich auch.

    EDIT 2
    Aber bin ich denn der Einzige, bei dem das Auftritt???
     
  14. SaschaBr

    SaschaBr Aktives Mitglied

    Registriert seit:
    1 Mai 2007
    Beiträge:
    2,234
    Zustimmungen:
    1
    Punkte für Erfolge:
    38
    Ort:
    NRW
    #14 SaschaBr, 16 März 2011
    Zuletzt bearbeitet: 16 März 2011
    So ein Mist. Ich dachte, das Problem hätte sich von selbst erledigt.
    Seit meinem letzten Post (bzw. seit dem aktualsieren und erweitern meiner Freetz-Firmware), ist das Problem bis heute nicht wieder aufgetreten.
    Doch dann diese Nacht wieder: Kein onlinechanged (also nix reload vsftpd, running opendd).

    Hier die logs aus dem betreffenden Zeitraum:

    syslog:
    Code:
    Mar 16 03:00:02 fritz cron.info crond[2161]: crond: USER root pid 28918 cmd /etc/init.d/rc.rrdstats backup
    Mar 16 04:00:01 fritz cron.info crond[2161]: crond: USER root pid 31994 cmd /etc/init.d/rc.rrdstats backup
    Mar 16 05:00:01 fritz cron.info crond[2161]: crond: USER root pid 2852 cmd /etc/init.d/rc.rrdstats backup
    
    avm-log:
    Code:
    16.03.11	04:04:57	Internetverbindung wurde erfolgreich hergestellt. IP-Adresse: 93.131.xxx.xxx, DNS-Server: 193.189.xxx.xxx und 193.189.xxx.xxx, Gateway: 213.20.xxx.xxx, Breitband-PoP: rdsl-xxxx-xxxx
    16.03.11	04:04:56	Internetverbindung wurde getrennt.
    16.03.11	04:04:53	Die Internetverbindung wird kurz unterbrochen, um der Zwangstrennung durch den Anbieter zuvorzukommen.
    Bin ich denn wirklich der Einzige, bei dem das auftritt??


    EDIT:
    Achja, mein Script bezüglich logging habe ich nach dem letzten Flash vergessen wieder einzutragen ... :(
     
  15. cuma

    cuma Aktives Mitglied

    Registriert seit:
    16 Dez. 2006
    Beiträge:
    2,747
    Zustimmungen:
    6
    Punkte für Erfolge:
    38
    Bei mir wird onlinechanged sogar ausgeführt wenn ich WLan an/ausschalte. Teste doch damit
     
  16. SaschaBr

    SaschaBr Aktives Mitglied

    Registriert seit:
    1 Mai 2007
    Beiträge:
    2,234
    Zustimmungen:
    1
    Punkte für Erfolge:
    38
    Ort:
    NRW
    WLAN? Bei mir nicht. Habe ich grade getestet. Weder beim de-/aktivieren via WebIF noch via Telefon.

    Aber wie schon gesagt, bei manuellem Aufruf "/bin/onlinechanged online" oder bei einem manuellen reconnect funktionierts ja dann!? Ich versteh es nicht.
    Ich könnte ja übergangsweise erstmal "/bin/onlinechanged online" in's crontab (täglich ein mal nach der Zwangstrennung) eintragen, aber richtig gut finde ich diese Lösung nicht.
     
  17. sf3978

    sf3978 IPPF-Promi

    Registriert seit:
    2 Dez. 2007
    Beiträge:
    7,726
    Zustimmungen:
    7
    Punkte für Erfolge:
    38
    onlinechanged wird auch dann nicht ausgeführt, wenn die Box nach der Zwangstrennung, keine öffentliche IP-Adresse bekommen hat und somit nicht ins Internet kann. Besteht bei dir eine Möglichkeit, sofort nach der Zwangstrennung, festzustellen ob deine Box eine öffentliche IP-Adresse hat bzw. Zugang zum Internet hat?
     
  18. RalfFriedl

    RalfFriedl IPPF-Urgestein

    Registriert seit:
    22 Apr. 2007
    Beiträge:
    12,343
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Was meinst Du mit "sofort nach der Zwangstrennung"? Sofort nach der Zwangstrennung ist die Verbindung erstmal getrennt, eine neue IP-Adresse gibt es erst, wenn die Verbindung wieder hergestellt werden konnte.

    Die ursprüngliche Beschreibung würde ich aber so deuten, daß eine Verbindung aufgebaut werden konnte und onlinechanged trotzdem nicht aufgerufen wurde.
     
  19. SaschaBr

    SaschaBr Aktives Mitglied

    Registriert seit:
    1 Mai 2007
    Beiträge:
    2,234
    Zustimmungen:
    1
    Punkte für Erfolge:
    38
    Ort:
    NRW
    Zumindest dem AVM-Log nach hat die Box aber eine IP-Adresse bekommen. Sollte also eigentlich passen (und deswegen Nachts aufbleiben, möchte ich eigentlich nicht).
     
  20. sf3978

    sf3978 IPPF-Promi

    Registriert seit:
    2 Dez. 2007
    Beiträge:
    7,726
    Zustimmungen:
    7
    Punkte für Erfolge:
    38
    Ich wollte sagen, ob es sofort nach dem Herstellen der Verbindung, eine neue IP-Adresse gibt. Mit Zwangstrennung meinte ich "Trennen + Wiederherstellen".