0

我想编写一个鱼脚本来在亚马逊服务器上运行 Locust。我编写了如下代码,问题是当 shell 连接到第一台服务器时,它不能在那里发送其他命令。

任何帮助,recommedationa 表示赞赏。

set labs 'ubuntu@compute1.amazonaws.com' 'ubuntu@compute2.amazonaws.com' 'ubuntu@compute3.amazonaws.com' 'ubuntu@compute4.amazonaws.com' 
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
4

1 回答 1

1

您需要将要运行的命令作为最终参数传递给 ssh 命令。

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

在这种情况下,我认为这会很好。当远程命令更复杂时要小心,特别是如果它包含带引号的字符串,因为您最终可能会得到嵌套引号的正确狗的晚餐!如果发生这种情况,您通常最好跨过 scp 脚本,然后使用 ssh 运行它。

于 2015-10-15T12:49:34.967 回答