我在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
答案 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的大结果集通过网络移动)