Unix ssh连接到服务器,并且必须获取服务器中给定字符串的计数
我在server1中有一个unix脚本,它通过ssh连接到另一个server2和grep,并对文件中的一些字符串进行计数,并且必须将计数返回到server1中的不同文件(server2中的不同字符串计数)Unix ssh连接到服务器,并且必须获取服务器中给定字符串的计数,unix,ssh,Unix,Ssh,我在server1中有一个unix脚本,它通过ssh连接到另一个server2和grep,并对文件中的一些字符串进行计数,并且必须将计数返回到server1中的不同文件(server2中的不同字符串计数) sshusername@server2 grep'string1'文件1 | wc-l>>文件2(在服务器1中) grep'string2'文件1 | wc-l>>文件3(在服务器1中) grep'string3'文件1 | wc-l>>文件4(在服务器1中) 正如我已经在server2中一样
sshusername@server2
grep'string1'文件1 | wc-l>>文件2(在服务器1中)
grep'string2'文件1 | wc-l>>文件3(在服务器1中)
grep'string3'文件1 | wc-l>>文件4(在服务器1中)
正如我已经在server2中一样,脚本返回为file2、file3和file4未找到
但我能做到以下几点:
sshusername@server2grep'string1'文件1 | wc-l>>文件2(在服务器1中)
sshusername@server2grep'string2'文件1 | wc-l>>文件3(在服务器1中)
sshusername@server2grep'string3'文件1 | wc-l>>文件4(在服务器1中)
但是我只需要连接到服务器2一次,并且我必须获得文件2、文件3和文件4中的计数
有没有其他方法可以让我只连接一次server2?
shh
在远程服务器上执行命令。输出返回到server1
在您的情况下,命令应该是grep'string1'file1
。输出处理在server1上完成,因此file1位于server1上
只需一次登录,就可以组合命令(引用以告诉ssh整个字符串将在远程执行)
然后,所有命令的输出返回到server1并进入文件。这取决于你把它分开
如果您只引用了
“grep'string1'file1 | wc-l”
,则应在server2上进行计数,并且只返回结果。重复登录可能不再是问题。(我假设grep的大结果集将通过网络移动)非常感谢。重复登录需要更多的时间(239秒),但您给出的代码需要6秒。再次感谢你
ssh username@server2 "grep ... | wc -l; grep...; grep ..."` >> server1.log