16
シェルスクリプトからリモートTCPポートが開いているかどうかをテストする
シェルスクリプト内から、指定されたTCPポートがリモートサーバーで開いているかどうかを適切にテストするための迅速で簡単な方法を探しています。 私はなんとか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 私はより良い方法、またはたとえば8秒未満で接続しない場合にtelnetを強制的にタイムアウトさせ、シェルでキャッチできるものを返す方法(戻りコード、または標準出力の文字列)が必要です。 IO :: Socket :: INETモジュールを使用し、ポートをテストする成功したスクリプトを記述したPerlメソッドを知っていますが、可能であればPerlの使用を避けたいです。 注:これは私のサーバーが実行しているものです(ここから実行する必要があります) …