Это не говорит мне, что мой порт 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

Ответы на вопрос(16)

Ваш ответ на вопрос