URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 62142
[ Назад ]

Исходное сообщение
"Проверка сервиса на комьютере"

Отправлено Сергей Петров , 25-Ноя-05 15:57 
Есть локалка. N компьютеров. На какждом из этих компьютеров работает по спечиальной программе, эта программа слушает обращения по определенному порту. Периодически эти программа падает (сделать, ничего невозможно =( Задача - нужно написать скрипт, которы прозванивает все компьютеры с ками-либо диапазоном и скидывает на мыло инфу о том, что на каком-то компьютере сервис упал.

Скрипт написат несложно, только есть одна проблема - когда программа на компьютере запущена, то этот компьютр отвечает по telnet по запросу на определенный порт. Но когда я запускаю telnet a.b.c.d port то для того, чтбоы выйти из телнета мне необходимо нажать ctrl+c, а я не знаю, как это можно запихнуть в скпипт. Пожалуйста помогите.


Содержание

Сообщения в этом обсуждении
"Проверка сервиса на комьютере"
Отправлено vvvua , 25-Ноя-05 16:19 
Да. подобные извращения под виндовс... :)

1. Ставим expect (под винду здесь лежит: http://bmrc.berkeley.edu/people/chaffee/expectnt.html)
2. Пишем под expect сценарий

Если удаленная система закроет соединение по комманде, то и телнет закроется. Так лучше.

>Есть локалка. N компьютеров. На какждом из этих компьютеров работает по спечиальной
>программе, эта программа слушает обращения по определенному порту. Периодически эти программа
>падает (сделать, ничего невозможно =( Задача - нужно написать скрипт, которы
>прозванивает все компьютеры с ками-либо диапазоном и скидывает на мыло инфу
>о том, что на каком-то компьютере сервис упал.
>
>Скрипт написат несложно, только есть одна проблема - когда программа на компьютере
>запущена, то этот компьютр отвечает по telnet по запросу на определенный
>порт. Но когда я запускаю telnet a.b.c.d port то для того,
>чтбоы выйти из телнета мне необходимо нажать ctrl+c, а я не
>знаю, как это можно запихнуть в скпипт. Пожалуйста помогите.



"Проверка сервиса на комьютере"
Отправлено mezantrop , 25-Ноя-05 16:31 
>Да. подобные извращения под виндовс... :)
>
>1. Ставим expect (под винду здесь лежит: http://bmrc.berkeley.edu/people/chaffee/expectnt.html)
>2. Пишем под expect сценарий
>
>Если удаленная система закроет соединение по комманде, то и телнет закроется. Так
>лучше.
>
>>Есть локалка. N компьютеров. На какждом из этих компьютеров работает по спечиальной
>>программе, эта программа слушает обращения по определенному порту. Периодически эти программа
>>падает (сделать, ничего невозможно =( Задача - нужно написать скрипт, которы
>>прозванивает все компьютеры с ками-либо диапазоном и скидывает на мыло инфу
>>о том, что на каком-то компьютере сервис упал.
>>
>>Скрипт написат несложно, только есть одна проблема - когда программа на компьютере
>>запущена, то этот компьютр отвечает по telnet по запросу на определенный
>>порт. Но когда я запускаю telnet a.b.c.d port то для того,
>>чтбоы выйти из телнета мне необходимо нажать ctrl+c, а я не
>>знаю, как это можно запихнуть в скпипт. Пожалуйста помогите.

если expect покажется сложным, воспользуемся моей тулзенью empty.sourceforge.net ;)


"Проверка сервиса на комьютере"
Отправлено anonymous , 25-Ноя-05 16:38 
If you just need to know whether a certain port is in listening mode or not there is no need for "telnet" at all. Try "hping" or "tcptraceroute":

#hping HOSTNAME -c COUNT -p PORT
#echo $?

Another example:
#hping www.hostname.com -c 1 -p 80 &>/dev/null && echo port is close || echo port is open

*** notice that if the port is in listening mode (the app is running) you will get no reply from hping (100% packet loss), and if it is not in listening mode (the app is not running) you will get a reply (0% packet loss).


"Проверка сервиса на комьютере"
Отправлено AMDmi3 , 25-Ноя-05 18:05 
>Скрипт написат несложно
Почему бы не взять nmap и не получить сразу список машин, где для каждой написано, открыт порт, или нет?

"Проверка сервиса на комьютере"
Отправлено vvvua , 25-Ноя-05 18:19 
Кстати да.
Он текстовик сгенерит....
Это, пожалуй, лучшее решение.

>>Скрипт написат несложно
>Почему бы не взять nmap и не получить сразу список машин, где
>для каждой написано, открыт порт, или нет?



"Проверка сервиса на комьютере"
Отправлено Алекс , 26-Ноя-05 16:16 
а не проще рестартить сервис на самих компьютерах? типа запрос если в задачах нет  то на старт,реализованно во многих программах вгугле примеров море


>Есть локалка. N компьютеров. На какждом из этих компьютеров работает по спечиальной
>программе, эта программа слушает обращения по определенному порту. Периодически эти программа
>падает (сделать, ничего невозможно =( Задача - нужно написать скрипт, которы
>прозванивает все компьютеры с ками-либо диапазоном и скидывает на мыло инфу
>о том, что на каком-то компьютере сервис упал.
>
>Скрипт написат несложно, только есть одна проблема - когда программа на компьютере
>запущена, то этот компьютр отвечает по telnet по запросу на определенный
>порт. Но когда я запускаю telnet a.b.c.d port то для того,
>чтбоы выйти из телнета мне необходимо нажать ctrl+c, а я не
>знаю, как это можно запихнуть в скпипт. Пожалуйста помогите.