特定のポートでアプリケーションが到達可能かどうかを確認するスクリプトを作成しています。 以下のコードは、リモートポートがアクティブで、リモートポートがアクティブでなく応答に時間がかかる場合にスタックされている場合に正常に動作しています。以下は
コード
#!/usr/bin/bash
TS="lava1/22"
for ip in `echo ${TS}`
do
if(exec 3<>/dev/tcp/${ip}) 2> /dev/null;
then
echo -e "TS ${ip} ..................................${GREEN[OK]${NORMAL}"
else
echo -e "TS${ip} .................................. ${RED[FAIL]${NORMAL}"
fi
done
リモートに時間を取っている場合、私は幹部からの即時の出口を探しています非アクティブポート
[email protected]$ ./a.sh
TS10.203.22.16/7122 .................................. [FAIL]
である結果以下
[email protected]$ ./a.sh
TS lava1/22 .................................. [OK]
です返事する。
誰もが、あなたのコマンド自体のタイムアウトを含むことができ、どのようにこれを達成するか、この
おかげ
のためのチューナブルはありませんこれはbashで - これは非常にシンプルなAPIです。 tracerouteとpingの組み合わせを使って、ホストがオンかどうか(pingは応答しないかもしれませんが)、次に実際の接続の 'nc'をチェックする方が良いでしょう。これにはタイムアウトオプションがあります。 – Petesh
ncがシステムにインストールされていません。 – user216358
'nc'をインストールすることができない場合、perl/pythonの小さなビットでも同様のことが達成できます。しかし、アドバイスはtracerouteとpingを最初に試みることの立場です。 – Petesh