Скрипт для перезагрузки модема -- инструкция

Здесь обсуждаются все вопросы, не попадающие под другие категории
Аватара пользователя
Dark_Sarmat
Маньяк
Сообщения: 183
Зарегистрирован: 24 мар 2008, 08:26
Откуда: из Минска
Контактная информация:

Скрипт для перезагрузки модема -- инструкция

Сообщение Dark_Sarmat »

народ, помогите пожалуйста написать скрипт для перезагрузки модема.
Есть модем zyxel P660R-T1 время от времени он подвисает, как правило после 2х суток непрерывной работы.
Может кто знает как написать скрипт, который бы запускался по cron и выполнял следующее:
подключался к модему по telnet давал ему команду на перезагрузку, а потом, через несколько минут, пинговал определенный хост. Если пинг есть, то все замечательно если нет, снова перезагружал модем.
Последний раз редактировалось Dark_Sarmat 27 май 2009, 23:26, всего редактировалось 1 раз.
Если Админу дать много-много денег, то он построит огромную компьютерную сеть и будет админить для души.

Аватара пользователя
Dark_Sarmat
Маньяк
Сообщения: 183
Зарегистрирован: 24 мар 2008, 08:26
Откуда: из Минска
Контактная информация:

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

Сообщение Dark_Sarmat »

Скорее 2 скрипта, оба загружаются по крону
1-й перезагружает модем
2-й пингует хост, если пинг не прошел, то запускает 1й скрипт
Если Админу дать много-много денег, то он построит огромную компьютерную сеть и будет админить для души.

leave
Неотъемлемая часть форума
Сообщения: 1055
Зарегистрирован: 25 окт 2006, 14:50
Откуда: minsk
Контактная информация:

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

Сообщение leave »

Не знаю, как с телнетом, но с ssh возможно следующее:

Код: Выделить всё

ssh user@host reboot
ессно сначала ключик надо
по идее, telnet тоже должен подобное уметь
пароль в параметрах передавать придется :(

Аватара пользователя
Dark_Sarmat
Маньяк
Сообщения: 183
Зарегистрирован: 24 мар 2008, 08:26
Откуда: из Минска
Контактная информация:

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

Сообщение Dark_Sarmat »

Я нашел скрипты под винду на VBS вопрос в том, как их под линуху переделать.

Код: Выделить всё

On Error Resume Next

strComputer = "."
strTarget = "turbo.uralcom.com" 'IP address or hostname
Set objWMIService = GetObject("winmgmts:" _
 & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colPings = objWMIService.ExecQuery _
 ("Select * From Win32_PingStatus where Address = '" & strTarget & "'")
If Err = 0 Then
  Err.Clear
  For Each objPing in colPings 'избавиться от форича
    If Err = 0 Then
      Err.Clear
      If objPing.StatusCode = 0 Then
		' если статус = 0, пустая строка - другое
      Else
		Set oShell = WScript.CreateObject("WScript.Shell")
		oShell.Run "telnet.exe 192.168.1.1"
		WScript.Sleep 1000
		oShell.SendKeys "user" & chr(13)
		WScript.Sleep 1000
		oShell.SendKeys "password" & chr(13)
		WScript.Sleep 1000
		oShell.SendKeys "reboot" & chr(13)
      End If
    Else
      Err.Clear
      WScript.Echo "Unable to call Win32_PingStatus on " & strComputer & "."      
    End If
  Next
Else
  Err.Clear
  WScript.Echo "Unable to call Win32_PingStatus on " & strComputer & "."
End If
Если Админу дать много-много денег, то он построит огромную компьютерную сеть и будет админить для души.

Аватара пользователя
Llama
Неотъемлемая часть форума
Сообщения: 9749
Зарегистрирован: 06 фев 2002, 11:40
Откуда: Менск

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

Сообщение Llama »

man expect
Опыт растет прямо пропорционально выведенному из строя оборудованию

Kornelius
Заглянувший
Сообщения: 2
Зарегистрирован: 24 янв 2009, 21:45

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

Сообщение Kornelius »

Боюсь man expect ему может не помочь :)
Лучше уж тогда давать: http://ru.wikipedia.org/wiki/Expect

Аватара пользователя
Dark_Sarmat
Маньяк
Сообщения: 183
Зарегистрирован: 24 мар 2008, 08:26
Откуда: из Минска
Контактная информация:

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

Сообщение Dark_Sarmat »

Если я понял правильно, то этой штукой можно что угодно по телнету делать. Сейчас набросал скриптик. Приду вечером домой и заценю как работает.
Если Админу дать много-много денег, то он построит огромную компьютерную сеть и будет админить для души.

bazil
Неотъемлемая часть форума
Сообщения: 879
Зарегистрирован: 18 дек 2003, 23:56

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

Сообщение bazil »

Можете копать в этом направлении

telnetRebootModem.sh

Код: Выделить всё

#!/bin/sh
DELAY=0.2s
MODEM="192.168.1.1"
USER="admin"
PW="1234"

echo "open $MODEM"
sleep $DELAY
echo "$USER"
sleep $DELAY
echo "$PW"
sleep $DELAY
echo "$PW"
sleep $DELAY
echo "reboot"
echo "close"
потом в кроне каждую минуту
ping -c 1 -W 1 tut.by || (/path/to/telnetRebootModem.sh | telnet)
I did a 'zcat /vmlinuz > /dev/audio' and I think I heard God...

Аватара пользователя
Dark_Sarmat
Маньяк
Сообщения: 183
Зарегистрирован: 24 мар 2008, 08:26
Откуда: из Минска
Контактная информация:

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

Сообщение Dark_Sarmat »

Всем спасибо.
Нашел универсальное и изящное решение проблемы.
Как только статью в блоге допишу повешу тут ссылку
Если Админу дать много-много денег, то он построит огромную компьютерную сеть и будет админить для души.

Аватара пользователя
Dark_Sarmat
Маньяк
Сообщения: 183
Зарегистрирован: 24 мар 2008, 08:26
Откуда: из Минска
Контактная информация:

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

Сообщение Dark_Sarmat »

Вот и сама статья: http://www.ionline.by/administrirovanie ... 6-07-2012/
Вам, народ, должна понравиться. Средство универсальное, позволяет через telnet или ssh админить или регулярно делать повторяющиеся действия.

Наджеюсь народ не осудит строго, это моя первая серьезная статья.
Если Админу дать много-много денег, то он построит огромную компьютерную сеть и будет админить для души.

Аватара пользователя
Dark_Sarmat
Маньяк
Сообщения: 183
Зарегистрирован: 24 мар 2008, 08:26
Откуда: из Минска
Контактная информация:

Re: Скрипт для перезагрузки модема -- инструкция

Сообщение Dark_Sarmat »

В дополнение к вышесказанному, вот тут в файловом архиве несколько готовых скриптов: http://www.ionline.by/fajlovyj-arxiv/
Если Админу дать много-много денег, то он построит огромную компьютерную сеть и будет админить для души.

Ответить