LINUX.ORG.RU

Скрипт для перезагрузки модема через telnet


0

0

Есть странная особенность у сетевых ADSL модемов - переодически отваливается внешнее подключение, автоматически почему-то не восстанавливается, но восстанавливается после перезагрузки.
Хотелось бы шелл скрипт который по крону (например раз в минуту) мониторит доступнусть внешнего хоста (например ping -c2 122.44.22.33) анализирует ответ (например если потери 100% - то всё плохо) и если всё плохо, то делает
telnet 192.168.0.1
reboot
exit

может видал кто аналогичные скрипты?

★★★★★

Ответ на: комментарий от Davidov

вообще-то два разных модема, подключеные к 2 разным провайдерам прошивку обновлял, не знаю почему так происходит

af5 ★★★★★
() автор топика

1. man ping

> If ping does not receive any reply packets at all it will exit with code 1. If a packet count and deadline are both specified, and fewer than count packets are received by the time the deadline has arrived, it will also exit with code 1. On other error it exits with code 2. Otherwise it exits with code 0. This makes it possible to use the exit code to see if a host is alive or not.

2. man expect

kemm
()

Я такое через netcat делал. Примерно так:

#!/bin/sh

ping -c 2 122.44.22.33 >/dev/null 2>&1 && exit

(
    sleep 3
    echo 'login'
    sleep 3
    echo 'password'
    sleep 3
    echo 'reboot'
    sleep 3
) | nc 192.168.0.1 23 >/dev/null

Deleted
()
Ответ на: комментарий от Deleted

Хотя правильнее конечно без sleep'ов с помощью expect.

Deleted
()
Ответ на: комментарий от af5

>два разных модема

Тем не менее ) Расскажи всё-таки, чтобы не повторять твоих ошибок.

Прозреваю длинк, хуайвей или зте.

Davidov ★★★★
()

Я себе сделал .desktop с такой командой:

if (kdialog --warningcontinuecancel "Сбросить модем нахуй?"); then (T=0.1;sleep $T; echo <пароль>; sleep $T; echo 24;sleep $T; echo 4; sleep $T; echo 1; sleep $T) | telnet modem; fi

Правда оно сбрасывает adsl-соединение, а не ребутает модем.

Это для zyxel 660. Правда, после обновления прошивки необходимость в резете отпала.

legolegs ★★★★★
()
Ответ на: комментарий от Davidov

>Тем не менее ) Расскажи всё-таки
один дома - dlink adsl 2540u
второй на работе SHDSL BILLION, модель точно не скажу

af5 ★★★★★
() автор топика
Ответ на: комментарий от true_admin

да я бы много чего туда засунул, вот только там система на столько кастрировнная что засунуть туда нифига не получится. Там даже команду ls выдрали (вместе с остальными "ненужными" командами) это я про 2540u

af5 ★★★★★
() автор топика
Ответ на: комментарий от urxvt

вобщем получился такой скриптец

#!/usr/bin/expect -f
spawn telnet 192.168.0.1
expect "login:" {send "admin\n"}
expect "Password:" {send "admin\n"}
expect "#" { send "ping -c 2 xx.xx.xx.xx ||reboot\n"}
expect "#" { send "exit\n"}
expect eof

af5 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.