FTPホストが起動しているかどうかをシェルスクリプトで判断するにはどうすればよいですか? [閉まっている]


0

ftpで動作するようにforループを書く手助けが必要です。アドレスのテキストファイルから入力を取得する必要があります。 sciptは完全に接続する必要はなく、ホストが起動しているかどうかを表示するだけです。私がこれまでに得たもの:

while read p; do
  cat $p
done < /media/C2AF-FE98/ftpsites/list6.txt

これを書くための正しい方法がなければならないことを私は知っています。


2
して頂けますか 編集する 「ホストが起動しているかどうか」を判断することによって、あなたが正確に何を意味しているのかを詳しく説明しますか。 (「ホストが稼働している」と見なされるものは何ですか?)また、その中から1つか2つのエントリの例を教えてください。 list6.txt ファイル?
a CVn

回答:


3

接続する必要がないのなら、ポートが開いていればスキャンが必要なようです。それから、ポートスキャナを使ってください。 nmap

nmap  -iL /media/C2AF-FE98/ftpsites/list6.txt  -p 21

から取得したパラメータの説明 オプションのまとめ

-iL <inputfilename>:ホスト/ネットワーク一覧からの入力
-p <port ranges>:特定のポートだけをスキャンする


nmapは私のリストのすべてのホストで開いているポート21を表示しますが、すべてのホストがftpサーバーを実行しているわけではありません。ウェルカムメッセージを取得して、サーバが起動しているかどうかを確認するのになぜftpコマンドを使用する必要があるのでしょう。
topgun2304

1
FTPサーバーがRUNNINGの場合、ポートはOPENと表示されます。正常な状態で実行されているという意味ではありませんが、少なくとも実行されていることは確かです。より適切な要件を指定してください。
LatinSuD

たとえば、37.200.60.119となっています。 24.1.222.50は違います。どちらも私のリストに載っていて、どちらも21番ポートが開いています。私は本当にバナーをつかみ、ftpサーバーがアクセス可能かどうかを知る必要があります。
topgun2304

@ user3701007質問への回答に関連する追加情報を含めるように、元の質問を編集する必要があります。回答に対するコメントは、その回答に固有の要求に対してのみ使用されるべきです。
a CVn

質問を編集して、あなたがftpウェルカムメッセージをチェックしたいと言ってください。また、これら2つのIPのどれも、ここから開いているポート21を持っていません。
LatinSuD

0

このアプリケーションにはpingコマンドを使用するのが一般的です。

for url in `cat /media/C2AF-FE98/ftpsites/list6.txt`
do
  ping -q -c1 $url || die "$url host is down."
done

ホストがエコー要求をフィルタリングする場合、これは役に立たないことがあります。 @LatinSuDによって投稿されたnmapソリューションはより効率的です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.