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

SaschaBr

Aktives Mitglied
Mitglied seit
1 Mai 2007
Beiträge
2,350
Punkte für Reaktionen
32
Punkte
48
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

  • config.txt
    4 KB · Aufrufe: 30
Zuletzt bearbeitet:
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
 
...
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.
...
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.
 
... dass onlinechanged überhaupt nicht ausgeführt wird?

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 es sein, dass deshalb nicht aktualisiert wird, weil opendd und vsftpd die öffentliche IP-Adresse aus dem Internet bekommen (/usr/bin/get_ip -e) ...

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).
 
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.
 
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?

... Falls dies nicht passiert, können wir, wie schon Oliver schreibt, nicht viel tun. ...

Die Befürchtung hatte ich auch schon, da das ja vom AVM-Teil der Firmware (sprich Multid) angestoßen wird. :-(
 
Zuletzt bearbeitet:
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.
 
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
 
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" "$@"
done

... und bei mir folgendes enthält:
Code:
root@fritz:/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).
 
@ sf3978:
Dort steht doch schon drinne, das ein Eintrag in den syslog gemacht werden soll, was ja funktioniert, wenn denn dann aufgerufen:
Ja, aber nicht das Datum in die Datei "onlinechanged.log".

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).
Irgendwo hast Du doch die Anweisungen stehen für den DynDNS Update und vsftpd reload, oder passiert das automatisch?
Dort stehn die Anweisungen für den DynDNS Update, nicht früher.;)
 
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.
 
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
... Ich vermute aber eher, daß /bin/onlinechanged erst gar nicht aufgerufen wird, und folglich nichts zu machen ist.

Das vermute ich auch.

EDIT 2
Aber bin ich denn der Einzige, bei dem das Auftritt???
 
Zuletzt bearbeitet:
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 ... :(
 
Zuletzt bearbeitet:
Bei mir wird onlinechanged sogar ausgeführt wenn ich WLan an/ausschalte. Teste doch damit
 
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.
 
...
Aber wie schon gesagt, bei manuellem Aufruf "/bin/onlinechanged online" oder bei einem manuellen reconnect funktionierts ja dann!? ...
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.
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?
 
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.
 
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).
 
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.
...
Ich wollte sagen, ob es sofort nach dem Herstellen der Verbindung, eine neue IP-Adresse gibt. Mit Zwangstrennung meinte ich "Trennen + Wiederherstellen".
 
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.