ssh到服务器,必须获取服务器中给定字符串的计数

时间:2017-04-30 18:01:25

标签: unix ssh scripting

我在server1中使用unix脚本ssh到另一个server2并且grep并计算文件中的一些字符串,并且必须将计数返回到server1中的不同文件(server2中的不同字符串计数)。

ssh username@server2

grep 'string1' file1 | wc -l >> file2 (in server1 )

grep 'string2' file1 | wc -l >> file3 (in server1 )

grep 'string3' file1 | wc -l >> file4 (in server1 )

因为我已经在server2中,脚本将返回file2,file3和file4 not found

但我可以这样做:

ssh username@server2 grep 'string1' file1 | wc -l >> file2 (in server1 )

ssh username@server2 grep 'string2' file1 | wc -l >> file3 (in server1 )

ssh username@server2 grep 'string3' file1 | wc -l >> file4 (in server1 )

但我必须只连接一次server2,我必须得到file2,file3和file 4中的计数。

还有其他任何方式,以便我只能连接一次server2

1 个答案:

答案 0 :(得分:0)

shh在远程服务器上执行命令。输出返回到server1。

在您的情况下,命令将是grep 'string1' file1。输出处理在server1上完成,因此file1位于server1上。

只有一次登录,你可以组合命令(引用告诉ssh要远程执行整个字符串)

ssh username@server2 "grep ... | wc -l; grep...; grep ..."` >> server1.log

然后所有命令的输出都返回到server1并进入文件。你可以把它分开来。

如果您只引用"grep 'string1' file1 | wc -l",则应在server2上进行计数,并仅返回结果。重复登录可能不再是问题。 (我假设grep的大结果集通过网络移动)