簡體   English   中英

通過代理服務器SSH到遠程計算機以運行帶有參數的腳本

[英]ssh to remote machine via proxy server to run a script with parameters

我想通過代理服務器SSH到計算機上,並在服務器上運行腳本,輸入作為參數傳遞

我正在使用以下:

ssh -t tooladm@200.81.36.188 "ssh -t tooladm@apuatt01" ". ./.profile >/dev/null 2>&1; cd /astxpinfs/ast/tooladm/JHF_SYNC_Particular_HF ; ./SyncToSite.ksh $product $release "${hf_list}" ${LOG_DIR_NAME} 2>&1 > /dev/null"

清除:

假設我在機器A中,並且想運行位於機器apuatt01中的腳本,則沒有直接連接到機器A和apuatt01的黑白信息,所以我通過200.81.36.188連接apuatt01

使用此命令,我將無法運行上述腳本

如果我做錯了,請您幫忙

您可以使用Bash here文檔來使腳本更整潔:

ssh -t tooladm@200.81.36.188 -- ssh -t tooladm@apuatt01 <<EOS
source .profile >/dev/null 2>&1
cd /astxpinfs/ast/tooladm/JHF_SYNC_Particular_HF
./SyncToSite.ksh $product $release "${hf_list}" ${LOG_DIR_NAME} 2>&1 > /dev/null
EOS

注意,雙破折號將命令與傳遞給ssh參數分開。

此語法也可以在ksh 從KornShell手冊( man ksh ):

<<[-]word刪除任何引號后,將讀取shell輸入直到與word相同的一行,或者讀取到文件末尾。
對單詞不執行參數替換,命令替換,算術替換或文件名生成。 生成的文檔稱為here文檔,成為標准輸入。 如果引用了單詞的任何字符,則文檔的字符不作任何解釋; 否則,將發生參數擴展,命令替換和算術替換,\\ new-行將被忽略,並且必須使用\\來引用字符\\,$,`。 如果將-附加到<<之后,則會從單詞和文檔中刪除所有前導制表符。 如果將#附加到<<之后,則會從文檔的第一行中去除前導空格和制表符,並從剩余的行和單詞中去除等效的縮進。 為了確定縮進,假定每8列出現一個制表位。

暫無
暫無

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

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