bashスクリプトの出力に2つのリストを結合しようとしています。 1つのリストはマシン名のリストです。もう1つのリストはIPアドレスのリストです。次に、ポート3389のIPにtelnetで接続できるかどうかを出力します。これは、Windowsマシンがそのポートで応答しているインベントリを取得しています。ここで2つのリストを通ってループし、ホスト名とIPを一致させるためのbashループ
は私が思い付いたものです:
#!/bin/bash
file1="machine_list.txt"
file2="ip_list.txt"
HOSTS=$(cat "$file1")
IP=$(cat "$file2")
for h in $HOSTS
do
for i in $IP
do
echo "checking RDP port on host: $h"
/usr/bin/telnet $i 3389
echo
sleep 2
done
done
成功した接続の出力は次のようになります。
checking RDP port on host: USAMZADP3000
Trying 10.1.233.65...
Connected to 10.1.233.65.
Escape character is '^]'
しかし、それは本当にやっていることは同じマシン名をループして与えています同じマシン名の別のIPアドレス。私は、マシン名とIPアドレスが正確で、1対1の相関があることを望みます。
私は間違っていますか?私は望む結果をどのように得ることができますか?
マシン名とIPアドレスが2つの異なるファイルにあるのはなぜですか?あなたはそれらをどのように相関させますか?また、Windowsでこれを実行していますか? – codeforester
マシン名とIPアドレスは、このようにスクリプトを書く方が簡単だと思っていたため、別のファイルにあります。両方を同じファイルに保存する方が簡単だと思われる場合は、教えてください。 そして、私はこのスクリプトを流行しているCentOS72(linux)サーバー上で実行しています。しかし、私はWindowsマシンと同じネットワーク上にあり、アクセス可能であればテストしなければならない。 – bluethundr