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在遠程主機上發出命令時,不需要使用',如果使用它,會導致問題。

任何在你連接的主機名後面的東西,一旦連接,就會被轉發到遠程主機。