Bash 从多个源到多个目标IP和端口的telnet

Bash 从多个源到多个目标IP和端口的telnet,bash,shell,Bash,Shell,我正在创建一个简单的脚本,可以从多个源远程登录多个目标IP和端口。我有4个文件-一个有目标IP,第二个有端口,第三个有源IP列表,最后一个是一个脚本,可以远程登录每个目标。来自多个来源的IP和端口。所以我有这些文件: dest_ips.txt, ports.txt, source_ips.txt, port_test.sh 我正在尝试这样的事情: for s in `cat source_ips.txt` do ssh $s <port_test.sh` 'cat source

我正在创建一个简单的脚本,可以从多个源远程登录多个目标IP和端口。我有4个文件-一个有目标IP,第二个有端口,第三个有源IP列表,最后一个是一个脚本,可以远程登录每个目标。来自多个来源的IP和端口。所以我有这些文件:

dest_ips.txt,
ports.txt,
source_ips.txt,
port_test.sh
我正在尝试这样的事情:

for s in `cat source_ips.txt`
do
    ssh $s <port_test.sh`
'cat source_ips.txt中s的
`
做

ssh$s首先,为什么要将服务器和端口分离到不同的文件中

除此之外,不要使用您列出的结构:

for s in `cat source_ips.txt`
相反,使用类似

while read s
do # . . . 
done < source_ips.txt

ssh
不是telnet。请注意您的术语。我正在使用“ssh$s”连接到源IP。port_test.sh将完成其余部分(包括telnet)。我只是不知何故需要将这些文件作为脚本的输入(port_test.sh)。如果它们是本地的,它会读取这些文件并相应地进行操作吗?是的,会的。但是,要使文件在本地可用,维护起来会很费时。我将其分为不同的文件,因为我需要针对每个目标IP对每个端口进行telnet。而且它不是一个固定的列表。此外,这还需要以某种方式对source_IPs.txt中的每个IP进行迭代,同时循环只获取source_IPs.txt中的第一行。源代码_ips.txt如下所示:10.x.x.x 10.x.x.x.x但是,使用for循环,我可以迭代这些IP中的每一个。我正在试图找出原因。我认为我们需要在第三行末尾添加
,这就解决了循环问题。无论如何,非常感谢,保罗!对不起,我没想到,不客气。个人偏好-只需关闭stdin即可。将相应地进行编辑。
while read s
do scp dest_ips.txt ports.txt port_test.sh "$s:/tmp/"
   ssh "$s" "cd /tmp && . port_test.sh dest_ips.txt ports.txt" <&- 
done < source_ips.txt