.txt 文件中有一个 IP 地址列表,例如:
1.1.1.1
2.2.2.2
3.3.3.3
Run Code Online (Sandbox Code Playgroud)
每个 IP 地址后面都有一个服务器,并且在每个服务器上都有一个在端口 22 上运行的 sshd。并非每个服务器都在known_hosts
列表中(在我的 PC 上,Ubuntu 10.04 LTS/bash)。
如何在这些服务器上运行命令并收集输出?
理想情况下,我想在所有服务器上并行运行这些命令。
我将在所有服务器上使用公钥身份验证。
以下是一些潜在的陷阱:
known_hosts
文件中。服务器是 AIX/ksh(但我认为这并不重要。
我有这个脚本:
#!/bin/sh
SERVERLIST=hosts
ICMD='cat /etc/redhat-release'
while read SERVERNAME
do
ssh $SERVERNAME $ICMD
done < "$SERVERLIST"
Run Code Online (Sandbox Code Playgroud)
随着hosts
就像:
hostname
hostname
hostname
Run Code Online (Sandbox Code Playgroud)
当我运行脚本时,./run.sh
它只会转到单个主机并停止。为什么不读取整个主机列表?