Это не говорит мне, что мой порт 80 открыт.
быстрый и простой способ для правильного тестирования, если данный порт 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