2010-12-04 14 views
0

与えられたポートが開いていれば、指定されたサーバがオンラインであり、与えられたサービスがアクティブであるかどうかをチェックしたいと思います。このようなサービスとサーバーが利用可能かどうかを確認する方法は?

何か:

port_check my_server 22 

または

service_check my_server ssh 

そして私はバイナリの答えを得るでしょう - はい/いいえ、すべてを意味することはOKである、または接続がない(サーバーがダウンしています、またはサービスがアクティブではありません)。

私はこのツールを通常のユーザーアカウント(root以外)から実行する必要があります。問題は - ツールは何ですか?事前にお手伝いいただきありがとうございます。

編集:バイナリの回答を得る必要があります。つまり、対話型のツール、または最初にログインしようとするツールは問題ありません。それは基本的にpingであるべきですが、どんなサービスでもあります。

答えて

2

はそのツールです。 check.sh

#!/bin/sh 

telnet -e/$1 $2 <<END 
/
close 
END 
echo $? 

ランニング - check.sh localhost <port>

注ポートをリスニングサービスが触れることになるという。

+0

このツールではない、または使用方法がわかりません - 質問する前に試しましたが、対話型です。私は手動(man telnet)で非対話モードに切り替える方法を知りませんでした。 – greenoldman

+0

@macias申し訳ありません。今は明らかですか? – khachik

+0

ああ、少し魔法が必要です;-)大変ありがとうございます!今私は非常に良い方法で並行して実行することができます。編集:はい、確かに、私は答えを受け入れるために待つ必要があります、SOの制限。 – greenoldman

1

nmapツールを試すこともできます。

最も簡単な方法はnmap -p$2 $1ですが、代わりにポートまたはホスト範囲を指定して確認することもできます。

+0

このフォームはOKです、ありがとうございます。それはtelnetよりも具体的なツールのように見えますが、私はそれを試してみました。そして、私は驚くべき結果を得ました.GNAPAPは約7秒間必要でしたが、googleポート(80)はtelnet(Khachikのスクリプト) – greenoldman

関連する問題