2017-11-03 3 views
1

特定のポートでアプリケーションが到達可能かどうかを確認するスクリプトを作成しています。 以下のコードは、リモートポートがアクティブで、リモートポートがアクティブでなく応答に時間がかかる場合にスタックされている場合に正常に動作しています。以下は

コード

#!/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] 

です返事する。

誰もが、あなたのコマンド自体のタイムアウトを含むことができ、どのようにこれを達成するか、この

おかげ

+0

のためのチューナブルはありませんこれはbashで - これは非常にシンプルなAPIです。 tracerouteとpingの組み合わせを使って、ホストがオンかどうか(pingは応答しないかもしれませんが)、次に実際の接続の 'nc'をチェックする方が良いでしょう。これにはタイムアウトオプションがあります。 – Petesh

+0

ncがシステムにインストールされていません。 – user216358

+0

'nc'をインストールすることができない場合、perl/pythonの小さなビットでも同様のことが達成できます。しかし、アドバイスはtracerouteとpingを最初に試みることの立場です。 – Petesh

答えて

-1

のいずれかの選択肢に私を導くことができます。すでにサブシェルを使用しているとして、最も単純には明示的に(GNUのcoreutilsのから)timeoutを使用して、そのサブシェルを実行することですタイムアウト や睡眠の$ yourMinutes &キルの$ PID

+0

これは問題を解決するための貴重なヒントであるかもしれませんが、良い答えはソリューションを示しています。そして、あなたはおそらく、 'spawn'コマンドを提供するためにどのパッケージをインストールする必要があるのか​​を述べるべきです - 私は標準リポジトリでそれを見つけることができませんでした。おそらく、あなたは 'タイムアウト '(' coreutils')や 'timelimit'を意味していたでしょうか?あなたが意味することを示すサンプルコードを提供するために[編集]してください。代わりに、これをコメントとして書くことを検討してください。 –

1

で産卵コマンドを使用してみてください:

timeout 7.5s bash -c "true <>/dev/tcp/$host/$port" 

終了ステータスは、成功の場合は0、接続拒否の場合は1、制限時間内のその他のエラー、コマンドがタイムアウトした場合は124になります。

#!/bin/bash 
TS=(lava1/22 lava2/22) 
max_time=15s 
for ip in "${TS[@]}" 
do 
    if timeout $max_time bash -c "true <>/dev/tcp/$ip" 2>/dev/null 
    then 
     echo -e "TS ${ip} .................................. ${GREEN}[OK]${NORMAL}" 
    else 
     echo -e "TS ${ip} .................................. ${RED}[FAIL]${NORMAL}" 
    fi 
done 

ようになり、あなたのコードで

、(私もタイプミスのカップルを固定し、TSのためのバッシュの配列変数を使用し、!それが役に立てば幸い)

関連する問題