The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"скрипт для передёргивания pppoe-соединения по недоступности ..."
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"скрипт для передёргивания pppoe-соединения по недоступности ..."
Сообщение от defan emailИскать по авторуВ закладки(??) on 22-Мрт-05, 04:00  (MSK)
Задолбали периодические (1-4 раза в месяц) падения сети. Просто переставал пинговаться шлюз, хотя соединение pppoe висело. Был на коленке написан такой скрипт:

#!/usr/bin/perl

my $gateway='1.2.3.4';  # insert yours
my $packetsize=64;
my $count=5;
my $pidfile='/var/run/tun0.pid';
my $ppplogfile='/var/log/ppp.log';

print "Pinging gateway ($gateway) for $count packets by $packetsize bytes...\n";

my $rc=system("/sbin/ping -c $count -s $packetsize $gateway");

print "Result: $rc\n\n";

if ($rc != 0) {
print "Attempting to restart PPP daemon (rc=$rc)...\n";

if (!-e $pidfile) {
   print "$pidfile not found, attempting to start PPP daemon...\n";
   system("/usr/sbin/ppp -ddial eleks");
   exit;
}

my $pppid=`/bin/cat $pidfile`;
chop($pppid);
print "PPP PID is $pppid, killing...\n";
if (kill TERM, $pppid) {
   print "Killed, waiting for \"PPP terminated\" in $ppplogfile...\n";
   my $n=0; my $success=0;
   for ($n=0;$n<=30;$n++) {
     print "Try #$n... ";
     my $s=`/usr/bin/tail -3 $ppplogfile`;
     if ($s =~ m/ppp terminated/i) {
       print "found.\n\n";
       $success=1;
       last;
     }
     print "not present.\n";
     sleep 1;
   }
   if ($success) {
     print "Starting PPP daemon...\n";
     system("/usr/sbin/ppp -ddial eleks");
     exit;
   } else {
     die "Seems like PPP was not terminated successfully...\n\n";
   }
} else {
   die "cannot kill $pppid!\n";
}
} else {
  print "Nothing to do, seems like all wonderful! (rc=$rc)\n";
}

Вызываю из крона каждые 10 минут. Пока только спамит о том что всё хорошо. Кстати ping возвращает 0 и при 20-40% потерь пакетов. Жду пока опять ляжет сетка - проверить, сработает, или нет. :)

Может кто уже делал такое - поделитесь опытом...

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "скрипт для передёргивания pppoe-соединения по недоступности ..."
Сообщение от supafly Искать по авторуВ закладки on 22-Мрт-05, 10:00  (MSK)
>Задолбали периодические (1-4 раза в месяц) падения сети. Просто переставал пинговаться шлюз,
>хотя соединение pppoe висело. Был на коленке написан такой скрипт:

Аналогичная ситуция...
только если инет отваливается то обычно это на долго, поэтому есть запасной канал и такой скрипт на кроне...
если pppoe падает то раутинг переключается и референту и директору отсылается месага если меня нет.


#!/bin/sh
PATH="/sbin:/usr/bin:/bin"
isp=xx.xxx.xxx.xxx

current_now=`route | grep default | awk '{print $2}'`
echo -n "ping over ISP:"
ping -c 3 $isp >/dev/null 2>&1
if [ $? -eq 0 ]; then
                 echo "[OK]"
echo -n "checking route... :"
route | grep default | awk '{print $2}'
                  if [ $? -ne 0 ]; then
   route add default gw 172.16.0.7
  else
   echo "[route OK]"
  fi            
        else
                echo " [FAILED]"
                
if [ $current_now = zyxel ]; then
  echo "[keeping]"
else
  echo "[switching]"
  route del default
  route add default gw 192.168.1.1
                  cat /usr/scripts/msg | /usr/bin/smbclient -M=REFERENT
  cat /usr/scripts/msg | /usr/bin/smbclient -M=DIREKTOR                  
fi
fi

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "скрипт для передёргивания pppoe-соединения по недоступности ..."
Сообщение от _KAV_ Искать по авторуВ закладки(ok) on 22-Мрт-05, 15:01  (MSK)
Для скриптов удобнее использовать fping
  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру