我想運行通過SSH連接到遠程主機的shell腳本內的expect腳本,目標是做並行的方法是這樣的:並行遠程ssh到同一臺機器
' #bin/bash
(expect_script_ssh_machine1.tcl parameter1 > file1) &
(expect_script_ssh_machine1.tcl parameter2 > file2) &
(expect_script_ssh_machine1.tcl parameter3 > file3) &
wait
` 期望腳本是這樣的:
#/bin/expect -f
spawn ssh [email protected]
...code...
預期腳本需要大約30秒來完成任務並打印結果。 這可能嗎?也許它可以與不同的機器一起工作,但使用一臺獨特的機器我不確定該腳本可以在同一時間內連接到一臺獨特的機器。
感謝
你試過了嗎?它工作嗎?你能簡單地用''替換'&'並等待每個任務完成嗎? –
是的,我已經嘗試過,但我只得到最後期望腳本的結果。如果我把';'它可以工作,但它不再是一項平行任務。 – Shannon
你可以在'expect'腳本中重定向'stdout'嗎('expect'有像'-d'這樣的開關,但也有更強大的'tcl'函數來處理輸出)?這項工作是否必須平行進行?當做簡單的任務登錄到一個文件時,我已經使用'pssh'(一個python工具)進行多連接而沒有問題。我認爲'bash','ssh','expect'或'&'在這裏吃着你的輸出,你可能需要直接告訴腳本把'stderr'重定向到'stdout'。 –