netd.pl
Prosty kod który ma jedno zadanie - resetować połączenie gdy nie może spingować czegoś. Nie jestem pewien czy czekanie działa.
- #!/usr/bin/env perl
- use strict;
- use warnings;
- use Net::Ping;
- use POSIX 'setsid';
- use POSIX 'sleep';
- ### Configuration
- ## Hosts - each member is a host to ping. Move the quickiest to the beginning.
- ## Please note that the more hosts is pinged the more realible is test and
- ## the more time it requires
- my @hosts = ('netia.pl', 'google.com', 'onet.pl');
- ## Method of ping
- my $ping_method = 'icmp';
- ## Sleep - a sleep in ms betwean the checks
- my $sleep = 250;
- ## Tries - a number of attapts to connect
- my $tries = 1;
- ## Routine to be called if network not found
- sub on_network_not_found {
- }
- ### Daemonize
- setsid;
- ### Main loop
- MAIN: while(1) {
- for(my $i = 0; $i < $tries; $i++) {
- for my $host (@hosts) {
- next MAIN if $p->ping($host)
- }
- on_network_not_found();
- }
- }
Kod jak zwykle na MIT.
Komentarze do wpisu
Możesz śledzić odpowiedzi poprzez kanał RSS. Możesz dodać komentarz lub zostawić ślad (trackback) ze swojego bloga.
Mateusz Kozak
u mnie za automatyczny reconnect odpowiada prosty skrypt w bashu
#!/bin/bash
/bin/ping -c 4 213.25.2.205 | grep „bytes from” || pppd call speedtouch;
11 września 2008, 14:16:05
Uzytkownik
Tak – tylko z dziwnych powodów takie skrypty nie chciały działać – cron się ‘zatykał’.
Gdyby nie to to oczywiście twój jest poprawniejszy.
No może z wyjątkiem tego że wystarczy:
ping -c 1 213.25.2.205 || pppd call speedtouch
11 września 2008, 19:00:22
Minio
Ślepy jestem… możesz pokazać palcem która linijka odpowiada za restartowanie połączenia?
11 września 2008, 20:21:39
Mateusz Kozak
@minio: # system ‘/etc/init.d/net.ppp0 restart’;
11 września 2008, 20:22:29
Uzytkownik
26. Oczywiście dla Gentoo ;)
Można sobie tam wpisać cokolwiek.
11 września 2008, 20:22:36
Minio
Mówiłem że ślepy jestem ;) .
Ale… jak ta procedura jest wywoływana? Nie widzę nigdzie odwołania do niej. A teraz pomogłem sobie ctrl+f ;) .
11 września 2008, 20:28:35
Uzytkownik
Bugreport przyjęty ;) tak to jest gdy skrypt rozwija się na 2 systemach bez gita…
11 września 2008, 20:31:17
Dodaj komentarz