Скрипт на Perl при обрыве PPPoE.

И всё прочее, что касается HTML
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
IbbiSuen
проходил мимо
Сообщения: 4
Зарегистрирован: 2013-02-21 9:08:40

Скрипт на Perl при обрыве PPPoE.

Непрочитанное сообщение IbbiSuen » 2013-02-21 9:51:09

Здравствуйте! Раз в сутки обрывается соединение РРРоЕ. Нашел в инете скрипт на Perl:
#!/usr/bin/perl
use Net::Ping;
$yandex="ya.ru";
sub ping_server
{
$host_alive=1;
$ping=Net::Ping->new('icmp');
if( $ping->ping($_[0]) ) { $host_alive=1;}
else {$host_alive=0;}
return $host_alive;
}
if(!ping_server($yandex))
{
# Kill ppp
system("killall ppp")
system("sleep 10");
# Start PPPoE ADSL connection
system("ppp -nat dedicated ukrtelecom");
# Log messages
system("echo `date` PPP restarted by timeout... >> /var/log/ppp.log");
}
else {
# Log messages
system("echo `date` PPP works ok! >> /var/log/ppp.log");
}
exit;
Прописал его в cron.
Скрипт пингует Яндекс и если пинг не проходит, перезапускает соединение. События логирует в /var/log/ppp.log для анализа.
Но что-то не работает. Соединение он разрывает (killall ppp), а вот поднять не может. После разрыва пробую вручную запустить РРРоЕ, пишет # Dedicated: Configuration label not found. Где ошыбка???

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
vadim64
майор
Сообщения: 2101
Зарегистрирован: 2009-09-17 15:15:26
Откуда: Засратовец

Re: Скрипт на Perl при обрыве PPPoE.

Непрочитанное сообщение vadim64 » 2013-02-22 7:02:49

отмодерите ЭТО плиз
и дайте

Код: Выделить всё

/etc/ppp.conf
или где там он
Люди не делятся на национальности, партии, фракции и религии. Люди делятся на умных и дураков, а вот дураки делятся на национальности, партии, фракции и религии.

IbbiSuen
проходил мимо
Сообщения: 4
Зарегистрирован: 2013-02-21 9:08:40

Re: Скрипт на Perl при обрыве PPPoE.

Непрочитанное сообщение IbbiSuen » 2013-02-22 9:18:52

Сорри, отмодерил. Еще раз:

Код: Выделить всё

#!/usr/bin/perl
use Net::Ping;
$yandex="ya.ru";
sub ping_server
{
$host_alive=1;
$ping=Net::Ping->new('icmp');
if( $ping->ping($_[0]) ) { $host_alive=1;}
else {$host_alive=0;}
return $host_alive;
}
if(!ping_server($yandex))
{
# Kill ppp
system("killall ppp")
system("sleep 10");
# Start PPPoE ADSL connection
system("ppp -nat dedicated ukrtelecom");
# Log messages
system("echo `date` PPP restarted by timeout... >> /var/log/ppp.log");
}
else {
# Log messages
system("echo `date` PPP works ok! >> /var/log/ppp.log");
}
exit;
Вот еще ppp.conf:

Код: Выделить всё

default:
  set log Chat Phase LCP IPCP CCP tun command
  Disable ipv6cp

ukrtelecom:
  set device PPPoE:em1
  set mtu max 1492
  set mru max 1492
  set speed sync
  disable acfcomp protocomp
  deny acfcomp
  enable dns
  enable lqr
  set dial
  set login
  set authname ******
  set authkey ******
  set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.255
  add default HISADDR
  set redial 0 0
  set reconnect 1 0

#NAT
 nat enable yes
 nat log yes
 nat same_ports yes
 nat unregistered_only yes

Аватара пользователя
skeletor
майор
Сообщения: 2548
Зарегистрирован: 2007-11-16 18:22:04

Re: Скрипт на Perl при обрыве PPPoE.

Непрочитанное сообщение skeletor » 2013-02-25 11:18:08

А что мешает запускать нормально, как сервис:

Код: Выделить всё

/etc/rc.d/ppp start
?
Исправьте строку system("ppp -nat dedicated ukrtelecom")

IbbiSuen
проходил мимо
Сообщения: 4
Зарегистрирован: 2013-02-21 9:08:40

Re: Скрипт на Perl при обрыве PPPoE.

Непрочитанное сообщение IbbiSuen » 2013-02-26 9:57:44

Вообще у меня такая проблема: раз в сутки (ночью) соединение разрывается. Надо его поднять автоматически. Я подумал, может это связано с тем, что трафик нулевой и оно разрывается. Если прописать в ррр.conf - set timeout 0 это может это помочь?
И подскажите пожалуйста еще один момент. Пример, ррр в rc.conf:

Код: Выделить всё

ppp_enable="YES"
ppp_mode="dedicated"
ppp_profile="ukrtelecom"
ppp_nat="YES"
После того как загрузилась ОС, хочу рестарнуть ррр.
#killall ppp.
# ppp -nat dedicated ukrtelecom: Configuration label not found
Или,
#/etc/rc.d/ppp stop: Configuration label not found
#/etc/rc.d/ppp start: Configuration label not found

Что за ошибка???

Аватара пользователя
skeletor
майор
Сообщения: 2548
Зарегистрирован: 2007-11-16 18:22:04

Re: Скрипт на Perl при обрыве PPPoE.

Непрочитанное сообщение skeletor » 2013-02-26 17:06:48

Скорее всего слово ukrtelecom содержит либо русские символы, либо ещё что-то. Но ukrtelecom в /etc/rc.conf и ukrtelecom /etc/ppp/ppp.conf - разные. Поэтому и ругается.

IbbiSuen
проходил мимо
Сообщения: 4
Зарегистрирован: 2013-02-21 9:08:40

Re: Скрипт на Perl при обрыве PPPoE.

Непрочитанное сообщение IbbiSuen » 2013-02-27 9:41:06

skeletor писал(а):Скорее всего слово ukrtelecom содержит либо русские символы, либо ещё что-то. Но ukrtelecom в /etc/rc.conf и ukrtelecom /etc/ppp/ppp.conf - разные. Поэтому и ругается.
Точно). Ошибка в самом слове была. Поменял в скрипте на "/etc/rc.d/ppp start". Сегодня попробую. Большое спасибо.