Я ищу быстрый и простой способ для правильного тестирования, если данный порт TCP открыт на удаленном сервере, внутри скрипта Shell.
Мне удалось сделать это с помощью команды 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 (код возврата или строку в stdout).
Мне известен метод Perl, который использует модуль IO :: Socket :: INET и написал успешный скрипт, который тестирует порт, но хотел бы по возможности избегать использования Perl.
Примечание: это то, что мой сервер работает (откуда я должен запустить это)
SunOS 5.10 Generic_139556-08 i86pc i386 i86pc