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