У меня на Укртелекоме загадочный глюк - раз в 2-3 часа на стороне модемного пула в ДСЛ-соединении отваливается гейт и днс сервер, что приводит к потере доступа в интернет. При этом само DSL соединение между модемом и пулом продолжает работать как ни в чем не бывало и модем не пытается соединится вновь.
Меня не очень устроило то, что я не могу оставить закачку или торрент и пойти по своим делам, поэтому я написал небольшой скрипт на PERL который заходит на модем телнетом, пингует сервер 4.2.2.4 и ребутит модем, если это надо.
#!/usr/bin/perl
use Net::Telnet;
my @array = ();
my $nonet = 0;
$telnet = new Net::Telnet ( Timeout=>50,
Errmode=>'die',
Prompt => '/[\$%#E<gt>] $/');
$telnet->open('МОЙ_IP');
$telnet->login('admin', 'МОЙ_ПАРОЛЬ');
@array = $telnet->cmd(String =>'ping -c 10 4.2.2.4');
$nonet = $#array;
if ( $nonet != 14 )
{
print "rebooting modem \n";
$telnet->cmd('reboot');
$telnet->close;
}
my $string = "100% packet loss";
$nonet = index($array[$#array-1], $string, 1);
if ( $nonet > 0 )
{
print "rebooting modem \n";
$telnet->cmd('reboot');
$telnet->close;
}
$telnet->close;
Меня не очень устроило то, что я не могу оставить закачку или торрент и пойти по своим делам, поэтому я написал небольшой скрипт на PERL который заходит на модем телнетом, пингует сервер 4.2.2.4 и ребутит модем, если это надо.
#!/usr/bin/perl
use Net::Telnet;
my @array = ();
my $nonet = 0;
$telnet = new Net::Telnet ( Timeout=>50,
Errmode=>'die',
Prompt => '/[\$%#E<gt>] $/');
$telnet->open('МОЙ_IP');
$telnet->login('admin', 'МОЙ_ПАРОЛЬ');
@array = $telnet->cmd(String =>'ping -c 10 4.2.2.4');
$nonet = $#array;
if ( $nonet != 14 )
{
print "rebooting modem \n";
$telnet->cmd('reboot');
$telnet->close;
}
my $string = "100% packet loss";
$nonet = index($array[$#array-1], $string, 1);
if ( $nonet > 0 )
{
print "rebooting modem \n";
$telnet->cmd('reboot');
$telnet->close;
}
$telnet->close;