2016-12-02 132 views
0

我有一台Linux OS服务器用于ssh到一堆其他Linux OS服务器。 这与JUMP BOX类似。ssh命令不会返回与在ssh下执行的命令相同的结果

使用JUMP BOX,如果我ssh到一台服务器,然后执行:

df --local -P | awk {'if (NR!=1) print $6'} | xargs -I '{}' find '{}' -xdev -type f -perm -4000 

我得到一个文件夹列表。

但是,如果我运行:

ssh -q server.domain.com 'df --local -P | awk {"if (NR!=1) print $6"} | xargs -I "{}" find "{}" -xdev -type f -perm -4000' 

我得到的文件夹中的错误。我使用的用户位于两个框中,并且具有无密码权限。

我试图做到这一点:

ssh -q server.domain.com 'df --local -P | awk {"if (NR!=1) print $6"} | xargs -I "{}" find "{}" -xdev -type f -perm -4000' >> output.txt 

其中命令的输出变为output.txt的。理论上,我希望从发送到远程服务器的输出中列出的文件夹附加在本地文件上。

我哪里有这个错误? 谢谢。

+0

我觉得你简单'在ssh-ing时是不需要的。尝试没有它$ ssh -q server.domain.com df --local -P | awk {“if(NR!= 1)print $ 6”} | xargs -I“{}”找到“{}”-xdev -type f -perm -4000 >> output.txt – r1verside

+0

就是这样!!!!!非常感谢。这是在杀我。你能否以答案的形式提出这个问题,我可以给你点数? – arcee123

+0

完成了,你可以现在就做,如果你想。 – r1verside

回答

2

使用SSH在远程主机上发出命令时,不需要使用',如果使用它,会导致问题。

任何在你连接的主机名后面的东西,一旦连接,就会被转发到远程主机。