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

时间:2014-12-31 10:02:31

标签: unix grep

例如,

我有两个服务器,即A和B.我想在A或B中使用grep命令,它将在A和B服务器中搜索并显示匹配。

2 个答案:

答案 0 :(得分:2)

你可以使用并行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

答案 1 :(得分:1)

对于那些无法访问parallel-ssh的人,请尝试:

#!/bin/bash

remotehost='hostnameA'
if [ `hostname` == 'hostnameA' ]
    then
        remotehost='hostnameB'
fi
{
    grep whatever
    ssh $remotehost grep whatever
}

第一部分列出了您所在的主持人以及ssh所需的内容。第二部分在两台主机上执行命令,并将输出分组在一起。