如何使用单个 grep 命令从不同的 unix 服务器搜索模式



例如,

我有两台服务器,即 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哪个主机。 第二部分在两个主机上执行命令,并将输出分组在一起。

最新更新