Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]4425[/thread]

Netzwerkroute setzen & Prozesse beenden



<< >> 7 Einträge, 1 Seite
Gast Gast
 2006-06-13 18:11
#37275 #37275
Hallo,
ich benötige hilfe zu einem Script und zwar möchte ich ein automatisches umschalten zwischen 2Mbit Standleitung und
2Mbit DSL-Leitung realisieren. Das umschalten klappt auch soweit, allerdings möchte ich noch einige Prüffunktionen
einbauen.

Dazu würde ich gerne Wissen, wie ich eine Netzwerkroute setzen kann bzw. herausbekomme ob diese schon gesetzt ist.

Ausserdem möchte ich verhindern, das mehr als ein pppd läuft. Wenn doch sollen alle pppd's beendet und die PPP Verbindung
neu aufgebaut werden.

Hatte erst versucht über system("route -n") zu gehen, aber dort bekomme ich die Ausgabe nicht zurück. Gibts da ne Möglichkeit?

Ich hoffe Ihre könnt mir ein paar Tipps/ Hinweis geben.

Mfg
Stefan D.
GwenDragon
 2006-06-13 18:40
#37276 #37276
User since
2005-01-17
14601 Artikel
Admin1
[Homepage]
user image
Ausgabe von route -n einlesen:
Code: (dl )
1
2
3
4
5
6
open(PIPE, "route -n |")  || die "cannot open route: $!";
while (my $line = <PIPE>) {
print $line;
# Ausgabe von route
}              
close(PIPE) || die "can't close route: $!";


Prüfen ob mehrere pppd laufen:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
open(PIPE, "ps ax |")  || die "cannot open route: $!";
my @lines = grep( /pppd/, <PIPE>); # Zeile, die pppd enthalten              
close(PIPE) || die "can't close pipe: $!";

if (@lines > 1) { # mehr als ein PID gefunden
 for my $line (@lines) {
   my ($pid) = $line =~ /(d+)/; # erste numerische Zahlen enthalten PID
   system( "kill -s KILL $pid"); # besser wäre TERM zu verwenden
 }
system( "/etc/init.d/pppd start"); # ppd starten
}
\n\n

<!--EDIT|GwenDragon|1150211822-->
renee
 2006-06-13 18:53
#37277 #37277
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
man könnte auch mit qx arbeiten...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
stefan5618
 2006-06-13 19:11
#37278 #37278
User since
2006-06-13
1 Artikel
BenutzerIn
[default_avatar]
Danke, werde ich ausprobieren.
Sehe ich das richtig, das bei z.B. open(PIPE, "ps ax |") das filehandle auf die
Ausgabe von ps ax zeigt (durch die Pipe)?

Danke, nochmals. :D
GwenDragon
 2006-06-13 19:16
#37279 #37279
User since
2005-01-17
14601 Artikel
Admin1
[Homepage]
user image
Ich habe oben nochwas geändert ;)

Ich hoffe, dass es richtig ist. Mein Unix ist etwas eingerostet.\n\n

<!--EDIT|GwenDragon|1150211921-->
renee
 2006-06-13 19:19
#37280 #37280
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
es gibt auch den Perl-Befehl kill!
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
GwenDragon
 2006-06-13 19:22
#37281 #37281
User since
2005-01-17
14601 Artikel
Admin1
[Homepage]
user image
[quote=renee,13.06.2006, 17:19]es gibt auch den Perl-Befehl kill![/quote]
Ähhm, ja!?! Sehe ich auch gerade. :blush:

Na ja, solange es doch übetr die System-Shell geht. Ich weiß, ist nicht elegant.
<< >> 7 Einträge, 1 Seite



View all threads created 2006-06-13 18:11.