Я ищу быстрый и простой метод для правильного тестирования, если данный порт TCP открыт на удаленном сервере, изнутри оболочки script.
Мне удалось сделать это с помощью команды telnet, и она отлично работает, когда порт открыт, но он не кажется тайм-аутом, когда он нет, и просто висит там...
Здесь пример:
l_TELNET=`echo "quit" | telnet $SERVER $PORT | grep "Escape character is"`
if [ "$?" -ne 0 ]; then
echo "Connection to $SERVER on port $PORT failed"
exit 1
else
echo "Connection to $SERVER on port $PORT succeeded"
exit 0
fi
Мне нужен либо лучший способ, либо способ заставить telnet отключить тайм-аут, если он не подключается менее чем за 8 секунд, и вернуть что-то, что я могу поймать в Shell (код возврата или строка в стандартном режиме).
Я знаю метод Perl, который использует модуль IO:: Socket:: INET и написал успешный script, который проверяет порт, но скорее хотел бы избежать использования Perl, если это возможно.
Примечание. Это то, что работает мой сервер (где мне нужно его запустить)
SunOS 5.10 Generic_139556-08 i86pc i386 i86pc