2015-10-15 88 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

相关问题