Always on mit pppoe? wie?

James Bond 007

Cadet 4th Year
Dabei seit
Aug. 2001
Beiträge
118
Hi allerseits,





ich habe QDSL, da wird zwar selten, aber doch bei Wartungsarbeiten evtl kurz getrennt, deshalb die Frage...wie kann ich meinen PPPoE-Client (rp-pppoe-3.3) so konfigurieren, dass sich der Compi nach einer evtl. Trennung sofort wieder versucht einzuwählen?


Gibts da auch irgendwo einen simplen Client, der das entsprechend überwacht oder muß ich da groß Hand anlegen? Wenn ja, wo und wie und wo gibts dazu ein HOW-TO?





Danke :)





so long





JB
 
Zuletzt bearbeitet:

James Bond 007

Cadet 4th Year
Ersteller dieses Themas
Dabei seit
Aug. 2001
Beiträge
118
Hi allerseits,

hat sich mittlerweile erledigt...

Selbst ist der Mann :)

so long

JB
 

Peter

Lt. Commander
Dabei seit
Mai 2001
Beiträge
1.956
Da ich auch mit Linux & DSL befasse, würde mich mal die Lösung dazu interssieren.
 

James Bond 007

Cadet 4th Year
Ersteller dieses Themas
Dabei seit
Aug. 2001
Beiträge
118
Hi weazel,









das folgende Verfahren habe ich mir überlegt (alles als root):





zuerst habe ich ein neues Verzeichnis in /etc/rc.d/scripts.d angelegt und dort einen kurzes Skript adsl_connect plaziert, welches adsl-start aufruft:





#!/bin/sh





/usr/sbin/adsl-start &











In /etc/rc.d/rc.local (das ist das letzte der Skripten, die beim Hochfahren ausgeführt werden) habe ich dann noch zwei Zeilen hinzugefügt:





#own startup scripts





/etc/rc.d/scripts.d/adsl_connect











rc.local wird ja als letztes beim Start nach allen anderen Skripten ausgeführt...so wird versucht beim Starten geich eine Verbindung aufzubauen...









Mit crontab -l aktuelle crontab anzeigen lassen und mit crontab -e die crontab fuer root editiert und folgende Zeile eingefügt:





* * * * * root [ -x /usr/sbin/cronloop ] && /usr/sbin/cronloop Every_minute











Diese Zeile bewirkt, daß alle Skripten, die in /etc/cron.d/Every_minute stehen, jede Minute ausgeführt werden, anschliessend wurde noch das Verzeichnis

Every_minute in /etc/cron.d angelegt.






Dann wurde das Skript qdsl_always_on erstellt:





#!/bin/sh





if ! test -e /var/run/adsl.pid.pppoe





then





echo Q-DSL connection broken...trying to reconnect...





/usr/sbin/adsl-start &





sleep 20s





if test -e /var/run/adsl.pid.pppoe





then





echo Q-DSL connection established...





else





echo Q-DSL connection could not be established...





fi





fi











Anschließend packt man qdsl_always_on in das Verzeichnis /etc/cron.d/scripts.d und trägt in /etc/cron.d/Every_minute einen Link auf qdsl_always_on in /etc/cron.d/scripts.d ein mit





ln -s /etc/cron.d/scripts.d/qdsl_always_on /etc/cron.d/Every_minute/qdsl_always_on











und fertig ist das Ganze.



:)



Noch zur Erklärung...das Skript qdsl_always on macht folgendes...in der ersten if Schleife





if ! test -e /var/run/adsl.pid.pppoe





wird abgefragt, ob das File adsl.pid.pppoe in /var/run nicht (Negierung durch "!") existiert. Falls ja, wird adsl-start in /usr/sbin aufgerufen, dann 20 Sekunden gewartet bis die Verbindung evtl. hergestellt ist und dann nochmals gefragt, dieses mal ob das file





adsl.pid.pppoe in /var/run existiert und wenn ja, gibts eine Erfolgsmeldung, daß die Verbindung hergestellt werden konnte, wenn nein, gibts auch eine Meldung. Da das im crontab eingetragen ist, wird jetzt jede Minute überprüft, ob eine Verbindung besteht und wenn nein, dann wird versucht eine zu starten.










Das Skript adsl-start bzw. nachher adsl-connect von rp-pppoe-3.3 legt in /var/run verschiedene Dateien ab, wenn eine Verbindung besteht, u.a. eben auch adsl.pid.pppoe und das macht man sich zunutze...











so long











JB









P.S.: alle Arbeiten sind als root auszuführen, da auch rp-pppoe-3.3 nur unter root ausgeführt werden kann. Des weiteren muß man natürlich alle Skripten nach dem Editieren mit chmod 744 für root executable machen...

P.P.S.: Man kann die echo Ausgaben in qdsl_always_on auch rausnehmen, sonst bekommt man die per Mail die ganze Zeit zugeschickt. Eigentlich wurden diese nur eingebaut, um zu sehen, ob das Skript das macht, was es soll ;)
 
Zuletzt bearbeitet:
Top