例如,
我有两台服务器,即 A 和 B。我想在 A 或 B 中使用 grep 命令,它将在 A 和 B 服务器中搜索并显示匹配项。
你可以使用并行ssh(pssh)来实现这一点。
请参阅此命令:
parallel-ssh -P -v -l root -A -H "192.168.1.1 192.168.1.2 192.168.1.3" "hostname"
其中hostname
是要在每个主机上执行的命令。 -P
表示打印命令的输出,-l root
表示使用用户root登录,-A
询问密码,-H
提供主机列表。
输出可能如下所示:
192.168.140.193: hostname1
192.168.140.194: hostname2
192.168.140.195: hostname3
[1] 11:18:17 [SUCCESS] 192.168.140.193
[2] 11:18:17 [SUCCESS] 192.168.140.194
[3] 11:18:17 [SUCCESS] 192.168.140.195
对于那些无法访问 parallel-ssh 的人,请尝试以下操作:
#!/bin/bash
remotehost='hostnameA'
if [ `hostname` == 'hostnameA' ]
then
remotehost='hostnameB'
fi
{
grep whatever
ssh $remotehost grep whatever
}
第一部分确定您在哪个主机上以及需要ssh
哪个主机。 第二部分在两个主机上执行命令,并将输出分组在一起。