LINUX.ORG.RU
ФорумAdmin

Telnet, проверка доступности порта


0

0

Ищу способ через bash сделать проверку доступности удаленного порта на сервере, и если порт не доступен сделать перезапуск ПО.
Беру скрипт типа:

#!/bin/bash
#copyleft michele dot mase at gmail dot com
HOST=www.google.com
PORT=81
OK=KO
TIMEOUT=3
#which is the pid of telnet
telnetpid () {
ps -ef|grep [t]elnet\ $HOST|awk '{print $2}'
}
#check if there is a hanged telnet session
sleep $TIMEOUT && [ -n «$(telnetpid)» ] && kill
$(telnetpid) && exit 1 &
#check telnet result
if telnet $HOST $PORT < /dev/null 2>&1 | grep -q Connected
then
OK=OK
else
OK=$OK
fi
echo Connection $HOST:$PORT=$OK
exit 0


Проблема в том что он подвивает на неопределенное время.
Где-то не хватает какой-то проверки, подскажите куда рыть?

Use nc -zw <timeout>, Luke!

nnz ★★★★ ()
Ответ на: комментарий от gserg

>nmap?

Насколько я помню, nmap для автоматического сканирования плохо пригоден (в частности, он не меняет код выхода в зависимости от состояния порта).

anonymous ()

плагином нагиоса проще всего. check_tcp какой-нить, у него всё настраивается.

true_admin ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.