2015-10-15 72 views
0

我想編寫一個魚腳本來在亞馬遜服務器上運行Locust。我寫了下面的代碼,問題是,當shell連接到第一臺服務器時,它無法發送其他命令。腳本連接服務器並在亞馬遜上運行一些命令

任何幫助,建議表示讚賞。

set labs '[email protected]' '[email protected]' '[email protected]' '[email protected]' 
set key /Users/mesutgunes/Desktop/project-key.pem 

for lab in $labs 
    ssh -i $key $lab 
    cd /path/to/project/ 
    screen 
    locust -f file.py --master 
    exit 
end 

回答

1

您需要將想要運行的命令作爲最終參數傳遞給ssh命令。

for lab in $labs 
    ssh -i $key $lab screen locust -f /path/to/project/file.py --master 
end 

在這種情況下,這將正常工作,我認爲。當遠程命令更加複雜時要小心,特別是如果它包含帶引號的字符串,因爲最後可能會引發右狗晚餐的嵌套引號!如果發生這種情況,你通常最好是scp腳本,然後用ssh運行它。

+0

謝謝你的工作。我收到兩條消息:'必須連接到終端.'和'bash:=:找不到命令'。我也想知道,通常我必須按'enter'鍵來激活'screen',我該如何處理它? –

+0

將命令更改爲: 'command ='cd/path/to/project /;屏幕上的蝗蟲-f file.py --master'' 運行那個單一命令的屏幕。可以進一步縮短到: 'command ='screen locust -f /path/to/project/file.py --master'' – IBam

+0

實際上,一旦你這樣做了,不妨將內聯命令 - 我會更新我的答案 – IBam

相關問題