Witam.
W jaki sposób mogę skonfigurować Debiana żeby przy utracie normalnego połączenia kablowego (DSL) system przełączył się na połączenie z telefonu komórkowego (przez rs232), a w przypadku powrotu normalnego połączenia z powrotem przeszedł na to pierwsze a to połączenie telefoniczne by zakończył.
Pod tym adresem:
http://7thguard.net/news.php?id=2672
znalazłem tylko opis wykrywający modem i automatycznie się łączący.
Z góry dziękuję za wskazówki.
Automatyczny wybór dost
-
- Posty: 12
- Rejestracja: 04 marca 2008, 13:10
Ja bym tutaj napisal sobie jakis skrypt, ktory testuje polaczenie na aktualnie dzialajacym laczu i po utracie np. ping do swiata zewnetrznego zmienial regułki firewala i NAT-u tak zeby wychodzily przez druga brame.
Kilka linijek w bashu i powinno dzialac.
Ale mysle ze Perl jest lepszym rozwiazaniem do tego celu.
Kilka linijek w bashu i powinno dzialac.
Ale mysle ze Perl jest lepszym rozwiazaniem do tego celu.
-
- Posty: 12
- Rejestracja: 04 marca 2008, 13:10
@Szpuni: Mógłbyś udostępnić jakiś prototyp tego skryptu. Basha nie znam a perla tylko trochę.
http://articles.techrepublic.com.com/51 ... 2650.html#
Tutaj znalazłem tylko powiadomienia o padnięciu sieci (skrypt w perlu):
http://articles.techrepublic.com.com/51 ... 2650.html#
Tutaj znalazłem tylko powiadomienia o padnięciu sieci (skrypt w perlu):
Kod: Zaznacz cały
<code>
The network status script
#!/usr/bin/perl
# this script must be run from cron
# defines
$ping1 = "192.168.10.5";
$ping2 = "10.0.0.28";
$admin = "admin";
$netdev = "eth0";
$msgbody = "I think the network is down!";
$msgsub = "Network Down!";
sub pingtest($$) {
my ($ping) = @_;
system(sprintf("ping -q -I %s -c 1 %s>/dev/null", $netdev, $ping));
$retcode = $? >> 8;
# ping returns 1 if unable to connect
return $retcode;
}
$test1 = &pingtest($ping1);
if ($test1 eq "1") {
$test2 = &pingtest($ping2);
if ($test2 eq "1") {
print("Shutting down $netdev...\n");
system(sprintf("ifdown %s", $netdev));
print("Bringing up $netdev...\n");
system(sprintf("ifup %s", $netdev));
$rtest1 = &pingtest($ping1);
if ($rtest1 eq "1") {
$rtest2 = &pingtest($ping2);
if ($rtest2 eq "1") {
system(sprintf("echo \"%s\"|/bin/mail -s \"%s\" %s", $msgbody,
$msgsub, $admin));
exit(1);
}
}
}
}
exit(0);
</code>
Ta czesc mozesz wykozystac mysle, tylko najpierw sprawdz czy to dziala bo wydaje mi sie ze trzeba bedzie to troche zmienic.
Nie znam niestety funkcji sprintf zeby stwierdzic to na 100%
Otworz nowy temat w czesci programowanie moze ktos ci tam wiecej pomoze, bo guru z perla to ja tez nie jestem
Pozniej test do bramy czy odpowiada jak nie to regułki firewala i NATu i route oczywiscie, na nowa brame.
Skrypt dodany to CRON zalozmy co minute albo mniej zalezy od ciebie i zrobione.
U mnie ludziska robia to recznie.
Maja skrypt startbackupline ktory ma tylko reguły do firewalla, natu i domyslnej sciezki i po prostu wpisuja to recznie jak im internet padnie w firmie
Kod: Zaznacz cały
sub pingtest($$) {
my ($ping) = @_;
system(sprintf("ping -q -I %s -c 1 %s>/dev/null", $netdev, $ping));
$retcode = $? >> 8;
# ping returns 1 if unable to connect
return $retcode;
}
Otworz nowy temat w czesci programowanie moze ktos ci tam wiecej pomoze, bo guru z perla to ja tez nie jestem

Pozniej test do bramy czy odpowiada jak nie to regułki firewala i NATu i route oczywiscie, na nowa brame.
Skrypt dodany to CRON zalozmy co minute albo mniej zalezy od ciebie i zrobione.
U mnie ludziska robia to recznie.
Maja skrypt startbackupline ktory ma tylko reguły do firewalla, natu i domyslnej sciezki i po prostu wpisuja to recznie jak im internet padnie w firmie