簡體   English   中英

通過SSH發送復雜的命令

[英]Send complex command via ssh

我正在嘗試通過ssh發送此命令:

ssh <user1>@<ip1>  ssh <user2>@<ip2> /opt/user/bin -f /opt/user/slap.conf -l /home/admin/`date +%Y%m%d`_Export_file$nr.gz -s "ou=multi" -a "(& (entry=$nr)(serv=PS))" -o wrap=no

此命令是自定義的,因此請不要與它混淆...但是它沒有執行,就像:突如其來的'(

如果我登錄服務器並給出此命令,它將正確執行。 因此,我認為應該使用括號和括號規則。

有人可以幫我嗎?

先感謝您。

您將需要對引號進行轉義,可能兩次,因為每次ssh的調用都涉及剝離一層。 將轉義的單引號放在整個命令周圍,然后將未轉義的單引號嵌套在內部命令周圍:

ssh <user1>@<ip1>  \'ssh <user2>@<ip2> '/opt/user/bin -f /opt/user/slap.conf -l /home/admin/`date +%Y%m%d`_Export_file$nr.gz -s "ou=multi" -a "(& (entry=$nr)(serv=PS))" -o wrap=no'\'

順便說一下,這是假設您希望解壓反引號,並在ip2執行命令,而不是在源計算機上預先執行命令,並且類似地對$nr變量進行解碼。 尚不清楚您希望它們如何解釋。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM