Доброго времени суток.
Недавно модем (после2-х лет безупречной работы) начал терять коннект. Скорее всего вина провайдера, но не в этом дело. Для поднятия конекта его нужно перезагрузить. Пытаюсь сделать это програмно (скрипт на bash), но при выполнении команды reboot вижу такую картину: (привожу сессию полностью)
Код:
telnet 192.168.1.1
Trying 192.168.1.1...
Connected to 192.168.1.1.
Escape character is '^]'.
BCM96338 ADSL Router
(none) login: admin
Password:
BusyBox v1.00 (2005.04.12-18:11+0000) Built-in shell (msh)
Enter 'help' for a list of built-in commands.
# reboot
kill process [pid: 245] [name: telnetd]...
Connection closed by foreign host.
После чего 23 порт закрывается и не открывается до перезагрузки кнопкой/ч-з веб интерфейс, но при этом продолжает работать интернет и веб морда.
Как его правильно перезагрузить через telnet?
РЕШЕНО: вместо reboot можно использовать
Код:
kill 1
На моей прошивке модем перезагружается. Спасибо пользователю
name_wUPDATEНаваял скрипт, который проверяет наличие подключения и в случае его отсутствия перегружает модем:
Код:
#!/usr/bin/expect -f
#имя админа
set USER admin
# пароль админа
set PASS admin
# ip адрес модема
set HOST 192.168.1.1
# имя устройства ppp (смотреть командой ifconfig при работающем интернет)
set DEVICE ppp_1_32_1
# комманда на перезагрузку модема. Можно использовать reboot, но у меня работает только так
set command "kill 1"
# timeout подключения. Менять не обязательно :-)
set timeout 5
# подключаемся к модему
spawn telnet $HOST
#ожидаем запроса на логин
expect "(none) login:"
# передаем логин
send $USER\r
# ожидаем запроса пароля
expect "Password:"
# передаем пароль
send $PASS\r
# ожидаем приглашения командной строки
expect "#"
# выводим список работающих интерфейсов
send "ifconfig\r"
# ожидаем нужное устройство. Если нашли - выходим
expect $DEVICE {exit}
# ожидаем приглашения командной строки
expect "#"
# посылаем команду на перезагруку
send $command\r
# ожидаем отключения модема
expect eof
Если у кого-то что-то не заработает - проведите руками подключение к модему и сравните строки приглашения ввода логина/пароля и приглашение командной строки. На разных модемах они могут отличаться, поэтому редактируем их под себя. И да, никакой ответственности автор не несет и денег тоже не просит

Юзайте на здоровье