• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

24h reconnect Problem (T-Online)

Hi ,
ich habe folgendes problem:

Ich habe einen pc, der als rout dient. Er läuft mit Suse 9.1. wenn jetzt der 24h reconnect von T-online ist, wählt er sich nicht wieder neu ein, wenn ich ihn neustarte, geht alles wunderbar.
ich möchte ihn aber nicht jedes mal neustarten müssen.

in yast habe ich einiges schon ausprobiert und in den kinterent einstellungen auch aber es hat nichts gebracht, hoffentlich kann mir einer von euch helfen

p.s. dial-on-demand ist aktiviert und die Idletime ist auf 0 gesetzt...

gruß Tux^
 

RZ

Newbie
Ich kenn das Problem (allerdings nicht mit T-Online). Meine Lösung für das Problem (folgendes Skriptläuft jede Minute von crontab aus):

#!/usr/bin/perl

$status = `/bin/ping -c 1 www.anderer_host.at 2>&1`;
if ($status =~ /unknown host/) {
#es können mehrere Prozesse hängen!!!
@ps = `ps ax|grep /usr/sbin/pppd|grep -v grep`;
foreach $ps (@ps) {
print "ps: $ps";
$ps =~ /^\s*(\d+)\s/;
$pid = $1;
system("kill -9 $pid") if $pid;
}
system("/usr/sbin/cinternet --start");
}
 
OP
C

christian_k

Member
danke für die antwort
aber da ich leider keine ahnung habe, was das skript macht, oder was ich daran änder müsste, kann ich damit nix anfangen...
javascript:emoticon(':(')

wenn du mir erklären würdest, was was macht in dem skript, wäre ich sehr froh

mfg
Tux^
 

RZ

Newbie
Das tut im wesentlichen:
Eine Verbindung herstellen, wenn keine da ist ;-)

Als root:
crontab -e
dort die Zeile:
*/1 * * * * /usr/bin/perl /tools/autoeinwahl.pl eintragen

(bedeutet, dass das Perl-Skript unter /tools/autoeinwahl.pl jede Minute gestartet wird).
Dann natürlich den Text des Skripts unter /tools/autoeinwahl.pl speichern (du kannst natürlich auch jeden anderen Namen nehmen; muss aber natürlich mit der crontab zusammenpassen).
Das Skript macht nichts anderes als ein ping zu einem anderen Rechner (sprich: checkt ob der erreichbar ist; in unserem Fall ob es geht, und eine I-Verbindung besteht).Für www.anderer_host.at musst du was anderes eintragen, z.B. www.suse.de
Wenn als Antwort 'unknown host' kommt - dann stimmt was nicht mit der I-Verb (eigentlich geht nur DNS nicht, aber das ist in dem Fall egal). Daher wird mit Hilfe der PID (Prozess-Identifikation) die bestehende (nicht-funktionierende) Verbindung beendet, und dann wieder automatisch eingewählt. That's it.
Ich behaupte nicht, dass das schön oder besonders elegant ist, aber bei mir funkts.[/i]
 

Keepers

Advanced Hacker
ich halte das schon fuer relativ schoen die Idee. Und wenn es dann auch noch funktioniert dann ist doch klasse :)
 

Hawelka

Newbie
RZ schrieb:
Ich kenn das Problem (allerdings nicht mit T-Online). Meine Lösung für das Problem (folgendes Skriptläuft jede Minute von crontab aus):

#!/usr/bin/perl

$status = `/bin/ping -c 1 www.anderer_host.at 2>&1`;
if ($status =~ /unknown host/) {
#es können mehrere Prozesse hängen!!!
@ps = `ps ax|grep /usr/sbin/pppd|grep -v grep`;
foreach $ps (@ps) {
print "ps: $ps";
$ps =~ /^\s*(\d+)\s/;
$pid = $1;
system("kill -9 $pid") if $pid;
}
system("/usr/sbin/cinternet --start");
}

Da du ja bereits "cinternet" verwendest, warum diese unsichere Methode mit dem "ping"?

Code:
result=$(/usr/bin/cinternet -i dsl0 --status | /usr/bin/grep disconnect)

liefert dir ohnehin den Status der Verbindung.
 
Oben