Автор Тема: Проверка за активна връзка  (Прочетена 1172 пъти)

gojko

  • Напреднали
  • *****
  • Публикации: 30
    • Профил
Здравейте, може ли с някакъв скрипт да се проверява на 30 мин. примерно дали не е разпаднала връзката ( ppp+ ) и ако е така да се стартира автоматично команда за пускане на adsl-a ( pon dsl-provaider  в моя случай?). Дистрибуцията ми е Debian 3.1 Sarge.

Мерси предварително за help-a!
Активен

prilep

  • Напреднали
  • *****
  • Публикации: 94
    • Профил
Проверка за активна връзка
« Отговор #1 -: Jun 10, 2005, 16:48 »
Примерен код

<?php
/*
Script for recconecting the Internet conecction. Check the state with ping,
then start killall and run ppp.
*/

$command='ping -q -c 3 194.145.63.12';// pinging dir.bg
$result=exec($command);
$result=trim($result);
$result=explode(' ',$result);
$result=$result[0];

if (!($result=='round-trip')){ // ping failed

        // start logging - write the log file
        $time = date(" H:i:s",time());
        $date = date("Y-m-d",time());
        $data="$date --- $time --- tun0 is down\n";
        $fp=fopen('/var/log/net.log','a');
        @fwrite($fp,$data);
        @fclose($fp);
        // end logging


        $command='killall -9 ppp';
        exec($command); // we are killing all ppp proceses
        $command='ppp -ddial MYCONNECTION';
        exec($command);
}
return;

?>




Здрасти - за това тука ти трябва php , не казвам , че е най-доброто или най-оптималното , на мен ми върши работа.
Замени $command='ppp -ddial MYCONNECTION';
с командата , с която си пускаш интернета и същото направи и за този ред $command='killall -9 ppp';
След това слагай в крон на колкото време ти е необходимо.

Успех !
Активен

Powered By DomashnaGROZDOVA & ShopskaSalata

divak

  • Напреднали
  • *****
  • Публикации: 831
    • Профил
Проверка за активна връзка
« Отговор #2 -: Jun 10, 2005, 18:10 »
Здравей
предлагам ти нещо, малко е грубо ама върши работа а и можеш да си го преправиш да е по тви вкус

#!/usr/bin/perl
while (!-e '/proc/sys/net/ipv4/conf/ppp0''<img'>
{
system ('adsl-stop''<img'>;
system ('adsl-start''<img'>;
}

малко е брутално, ама друго по елементарно не се сетих.
Просто проверява в /proc/sys/net/ipv4/conf/ и ако няма /ppp0 прави опити за връзване наново. Слагаш го в крон-а за колкото време изкаш да проверява.Самия скрипт го слагаш кадето на теб ти харесва.
П.с. Пак ти казвам че е грубо - Ако проблема да нямаш нет е хардуерен независимо каде е причината, това почва да цикли докато се върже
Активен

gojko

  • Напреднали
  • *****
  • Публикации: 30
    • Профил
Проверка за активна връзка
« Отговор #3 -: Jun 11, 2005, 11:17 »
Мерси за бързите отговори! Ще пробвам да видим какво ще стане
Активен