Страница 1 из 1
Помогите со скриптом
Добавлено: 2008-05-02 10:23:25
kalamazoo
Добрый день. Проблема в следующем: периодически виснет АДСЛ модем.. Нужно накатать скрипт, который будет по крону раз в 10-20 мин пинговать, например Гугле, если пинг не проходит - заходит по телнету на модем и ребутит его...
Ос Фриибсд7. Скрипты писать не умею вообще.. Только начал учить фряху.
Помогите пожалуйста.
Re: Помогите со скриптом
Добавлено: 2008-05-02 22:22:56
Alex Keda
поиск осилил?

раз в месяц такие скрипты писать начинают

))
Re: Помогите со скриптом
Добавлено: 2008-05-03 12:00:12
kalamazoo
Спасибо, поиск осилил, нашел

Re: Помогите со скриптом
Добавлено: 2008-07-29 1:53:17
risk94
поиск не осилил. таже трабла с укртелекомом. хелп
Re: Помогите со скриптом
Добавлено: 2008-07-29 19:06:14
risk94
как рестартануть dsl соединение через телнет - разобрался, а вот как сделать это все через скрипт ..... "ткните носом", плиз
Re: Помогите со скриптом
Добавлено: 2008-07-29 21:35:18
zg
risk94 писал(а):как рестартануть dsl соединение через телнет - разобрался, а вот как сделать это все через скрипт ..... "ткните носом", плиз
+1, затык в авторизации, не знаю как сделать так, чтобы через скрипт ввести логин и пароль. Подозреваю, что средствами telneta это можно, но думается, что без знания протокола телнета это не провернуть.
Re: Помогите со скриптом
Добавлено: 2008-07-30 9:13:06
risk94
может что-то типа:
Код: Выделить всё
(sleep 3 ; echo "admin" ; sleep 3 ;echo "password" ; sleep 3 ; echo "adsl start" ; sleep 6) | telnet 192.168.0.1
у меня пашед.
Re: Помогите со скриптом
Добавлено: 2008-07-30 9:33:49
zg
Код: Выделить всё
# ( sleep 3 ; echo "admin" ; sleep 3 ; echo "admin" ; sleep 3 ; echo "echo adsl start" ; sleep 6 ) | 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.
# echo adsl start
adsl start
# Connection closed by foreign host.
#
хм.. пашет

а я блин голову ломал, вроде пароль вводится через тотже stdin, в отличие от ssh, но нифига не пашет. Я так понимаю, что телнет начинает сразу принимать команды независимо от удалённой машины, поэтому если просто сделать
то admin будет командой для telnet, потому как коннект ещё не состоялся. Респект

Re: Помогите со скриптом
Добавлено: 2008-07-30 9:42:08
risk94
рад что помог!

Re: Помогите со скриптом
Добавлено: 2008-07-30 15:39:04
kalamazoo
Я делал так:
скрипт с пингом:
поставил его в крон, раз в 10 мин.
Код: Выделить всё
#!/usr/bin/perl -w
$host = "209.85.135.147";
open F, "/usr/local/sbin/fping $host|";
$result = <F>;
if (!($result =~ /alive/))
{
system("expect /путь к скрипту ребута модема");
}
Скрипт ребута модема:
#!/usr/bin/expect -f
spawn telnet 192.168.1.1
sleep 25
expect ogin { send admin\r}
sleep 15
expect assword { send пароль\r}
sleep 15
send "reboot\r"
sleep 15
send "exit\r"
expect eof
Примерно так...
Re: Помогите со скриптом
Добавлено: 2008-07-31 9:16:19
risk94
а каг все это хозяйство научить слать отчеты по почте только в случае отсутствия инета, а не каждые 10 минут. Пингующая часть у меня из раздела
"Скрипты на коленке"
Re: Помогите со скриптом
Добавлено: 2008-08-19 14:05:33
risk94
Заметил, что не всегда помогает реинициализация именно dsl-соединения. (Может из-за жары? Третью неделю на улице около + 40 представляю как тяжелов больших серверных) в общем заменил:
на
получилось:
Код: Выделить всё
(sleep 3 ; echo "admin" ; sleep 3 ;echo "password" ; sleep 3 ; echo "reboot" ; sleep 6) | telnet 192.168.0.1