- +

Автор: Гость Тема: Програмная автоматическая перезагрузка модема  (Прочитано 10325 раз)

Тема содержит ответ помеченный, как лучший. Нажмите сюда, если хотите его увидеть.

Gucul

  • Гость
Ситуация следующая. Модем intercross 5633e (PPPoE) периодически теряет соединение. После перезагрузки модема соединение восстанавливается. Тех. поддержка не скрывая указывает на то, что проблема не аппаратная, а на линии. Так вот вопрос заключается в том, как автоматически производить restart модема при разрыве связи.

p/s: прошу благосклонно отнестись к разрешению моей проблемы т.к. с Xubuntu я знаком недавно. В гугл ходил, читал и от поверхностных разъяснений в голове ничего кроме каши не прибавилось ))

Оффлайн xf∞

  • xfce 4.11
  • Старожил
  • *****
  • Сообщений: 808
  • Репутация: +50/-0
  • Xubuntu 12.04.4
    • Просмотр профиля
если вы настраивали соединение в терминале через команду sudo pppoeconf, то попробуйте там написать sudo pon
если не поможет, то нужно попробовать настроить соединение в network-manager'е.
Делаю нескучные обои и рисую темы для xfce.

Gucul

  • Гость
если вы настраивали соединение в терминале через команду sudo pppoeconf
Так я не настраивал. Моя настройка заключалась лишь в том, что я забил в проводное соединение "Wired connectеon" IP, маска, шлюз, DNS и инет завелся. Мне нужен скрипт, чтобы подымать соединение при разрыве связи. В силу того, что мои интеллектуальные способности пока не в силах решить данную задачу, то я прошу помощи. Объясните плиз подробно и доходчиво новичку в "лине", что нужно сделать. Какой скрипт, в какой директории и как его запустить.
xf∞, все одно спасибо, что откликнулись!

Оффлайн VJM

  • Administrator
  • Жилец
  • *****
  • Сообщений: 484
  • Репутация: +34/-0
    • Просмотр профиля
    • Русскоязычное сообщество Xubuntu
Немного не ясно причем тут линукс, если модем отдельное устройство и именно оно управляет соединением?

Модем в каком режиме настроен?
« Последнее редактирование: Апрель 23, 2013, 23:08:07 от VJM »
Для точного ответа нужен точный вопрос.

Хочешь такой userbar?

Gucul

  • Гость
Немного не ясно причем тут линукс, если модем отдельное устройство и именно оно управляет соединением?
Скрипт с определенным интервалом времени опрашивает заданный сервер при отсутствии пинг-ответа посылает команду в телнет о перезагрузке модема
Модем в каком режиме настроен?
Роутер

Отмечено, как лучший ответ пользователем Март 21, 2014, 05:27:18

Оффлайн VJM

  • Administrator
  • Жилец
  • *****
  • Сообщений: 484
  • Репутация: +34/-0
    • Просмотр профиля
    • Русскоязычное сообщество Xubuntu
Если в режиме роутера, то соединением управляет не система, а непосредственно модем. И рестартить соединение придется только на нём. Вообще он так и должен делать сам. На большинстве модемов есть функция автодозвона в случае потери коннекта.

Посмотрите такое решение Вашей проблемы. ССЫЛКА. Если решение толковое, прошу отписаться и оно пойдёт на главную сайта.
Для точного ответа нужен точный вопрос.

Хочешь такой userbar?

Gucul

  • Гость
Если в режиме роутера, то соединением управляет не система, а непосредственно модем. И рестартить соединение придется только на нём. Вообще он так и должен делать сам. На большинстве модемов есть функция автодозвона в случае потери коннекта.
Так предусмотрено и должно быть, а на деле линия ресетит модем да так хитро это делает, что модем в этот момент всеми своими индикаторами сигналит, что все путем и он в сети даже не пытается рестартить.
Посмотрите такое решение Вашей проблемы. ССЫЛКА. Если решение толковое, прошу отписаться и оно пойдёт на главную сайта.
Благодарю! Курю инфу. О результате несомненно отпишусь!

Gucul

  • Гость
ССЫЛКА. Если решение толковое, прошу отписаться и оно пойдёт на главную сайта.

Бился день-ночь и к сожалению ничего хорошего, как впрочем и плохого по этим скриптам сказать не могу они у меня попросту не завелись (хотя вру хорошее все же скажу, данный мануал мне дал кое-какое представление о происходящем и дальнейшую опору изголятся над другими скриптами).
Итак, что на сегодняшний день, что я имею:

Скрипт для проверки соединения touchmodem_ping.sh в ручном режиме запускается, но при странных особенностях в логе пишет, что соединение есть даже если выдернуть телефонный провод из модема ))

#!/bin/bash                                                                                                                         
# часы                                                                                                                             
date_time="`date +%H:%M:%S`"                                                                                                       
# дата                                                                                                                             
date="`date +%d-%m-%Y`"                                                                                                             
#Тестируемый адрес                                                                                                                 
testip="ya.ru"                                                                                                             
                                                                                                                                   
kol=$(/bin/ping -c 4 $testip | grep "received" | awk '{print $4}')                                                                 
if [ $kol == 0 ]                                                                                                                   
    then                                                                                                                           
        echo "Нет пинга, Ждём 1 минуту" | logger -t NOPING                                                                         
        sleep 10                                                                                                                   
        kol=$(/bin/ping -c 4 $testip | grep "received" | awk '{print $4}')                                                         
            if [ $kol == 0 ]                                                                                                       
                then                                                                                                               
                    /scripts/touchmodem_reboot.sh                                                                                   
                    echo '<p style="line-height:100%; margin-top:0; margin-bottom:0;">'$date $date_time '  Нет интернета. Начат перезапуск модема.</p>' >> /var/www/html/netsrv.info/status.html
                    echo $date $date_time Нет интернета. Начат перезапуск модема.  >> /var/log/restartinet.log                     
                exit 0                                                                                                             
            fi                                                                                                                     
fi                                                                                                                                 
echo '<p style="line-height:100%; margin-top:0; margin-bottom:0;">'$date $date_time'  Интернет есть..</p>' >> /var/www/html/netsrv.info/status.html
echo $date $date_time Интернет есть..  >> /var/log/restartinet.log

И скрипт для перезагрузки модема touchmodem_reboot.sh
#!/usr/bin/expect                                                                                                                   
                                                                                                                                   
spawn telnet 192.168.1.1                                                                                                           
sleep 3                                                                                                                             
expect "login:"                                                                                                                     
send "admin\r"                                                                                                                     
sleep 3                                                                                                                             
expect "Password:"                                                                                                                 
send "admin\r"                                                                                                                     
sleep 3                                                                                                                             
expect "#"                                                                                                                         
send "reboot\r"                                                                                                                     
sleep 3                                                                                                                             
expect eof

этот скрипт честно отрабатывает свою задачу и при запуске исправно перезагружает модем, правда тоже пока в ручном режиме, потому как cron я пока так и не победил.

p/s: скрипты наглым образом были позаимствованы в интернете ))

Gucul

  • Гость
Вопрос решен! Вот рабочий мануал  Автоматический перезапуск модема мною проверенно!

p:s\ автору почет и уважение за проявленную смекалку и сознательность поделится с интернет-общественностью скриптами!

Gucul

  • Гость
Нашел время описать ход своих действий. Думаю, что ссылки ссылками, а форуму xubuntu-ru.net не помешает свой инструктаж.

Устанавливаем expect

sudo apt-get install expect

в каталоге root создаем подкатолог skripts и туда скидываем скрипты modem_test.sh и modem_reboot.sh

скрипт modem_reboot.sh

#!/usr/bin/expect                                                                                                                   
                                                                                                                                   
spawn telnet xxx.xxx.xxx.xxx                                                                                                           
sleep 3                                                                                                                             
expect "login:"                                                                                                                     
send "admin\r"                                                                                                                     
sleep 3                                                                                                                             
expect "Password:"                                                                                                                 
send "admin\r"                                                                                                                     
sleep 3                                                                                                                             
expect "#"                                                                                                                         
send "reboot\r"                                                                                                                     
sleep 3                                                                                                                             
expect eof

Меняем Password и login при необходимости, а также  xxx.xxx.xxx.xxx на адрес своего модема

скрипт modem_test.sh
#!/bin/bash                                                                                                                         
# часы                                                                                                                             
date_time="`date +%H:%M:%S`"                                                                                                       
# дата                                                                                                                             
date="`date +%d-%m-%Y`"                                                                                                             
#Тестируемый адрес                                                                                                                 
testip="xxx.xxx.xxx.xxx"                                                                                                             
                                                                                                                                   
kol=$(/bin/ping -c 4 $testip | grep "received" | awk '{print $4}')                                                                 
if [ $kol == 0 ]                                                                                                                   
    then                                                                                                                           
        echo "Нет пинга, Ждём 1 минуту" | logger -t NOPING                                                                         
        sleep 10                                                                                                                   
        kol=$(/bin/ping -c 4 $testip | grep "received" | awk '{print $4}')                                                         
            if [ $kol == 0 ]                                                                                                       
                then                                                                                                               
                    /root/skripts/modem_reboot.sh                                                                                   
                    echo '<p style="line-height:100%; margin-top:0; margin-bottom:0;">'$date $date_time'  Нет интернета. Начат перезапуск модема.</p>' >> /var/www/html/netsrv.info/status.html
                    echo $date $date_time Нет интернета. Начат перезапуск модема.  >> /var/log/restartinet.log                     
                exit 0                                                                                                             
            fi                                                                                                                     
fi                                                                                                                                 
echo '<p style="line-height:100%; margin-top:0; margin-bottom:0;">'$date $date_time'  Интернет есть..</p>' >> /var/www/html/netsrv.info/status.html
echo $date $date_time Интернет есть..  >> /var/log/restartinet.log

"xxx.xxx.xxx.xxx" вводим адрес своего DNS

теперь при детальном рассмотрении скрипта видем строчку  /root/skripts/modem_reboot.sh которая гласит, что при отсутствии интернета скрипт modem_test.sh обращается к скрипту modem_reboot.sh и если Вы скрипты поместили в директорию /root/skripts/ то эту строку оставляем без изменений.

а также видем строки /var/www/html/netsrv.info/status.html и /var/log/restartinet.log  естественно в каталоге /var создаем эти подкаталоги и файлы под запись логов

делаем скрипты исполняемыми

sudo chmod +x /root/skripts/modem_test.sh

sudo chmod +x /root/skripts/modem_reboot.sh

даем скриптам права

sudo chmod 750 /root/skripts/modem_test.sh

sudo chmod 750 /root/skripts/modem_reboot.sh

вызываем crontab

sudo crontab -e

в crontab ввести

*/10 * * * * /root/skripts/modem_test.sh

что говорит о том, что cron будет запускать скрипт каждые десять минут

сохранить Ctrl+O потом нажать Enter и выйти Ctrl+X

От себя добавлю, что автор скриптов ссылку на которого я привел выше не рекомендует устанавливать значение меньше десяти минут. Я же поставил 30 минут, но это уже решать только Вам (более подробную информацию о cron найдете сами)
Еще хочу отметить тот факт, что это не панацея если модем завис наглухо и в этот момент нельзя выйти даже в вебморду модема, тут уже как ранее верно подметил VJM "линь" не причем. ))
« Последнее редактирование: Апрель 28, 2013, 00:51:34 от Gucul »

Оффлайн VJM

  • Administrator
  • Жилец
  • *****
  • Сообщений: 484
  • Репутация: +34/-0
    • Просмотр профиля
    • Русскоязычное сообщество Xubuntu
Благодарю. Скоро будет на главной.
Для точного ответа нужен точный вопрос.

Хочешь такой userbar?