【问题标题】:script to connect servers and run some commands on amazon连接服务器并在亚马逊上运行一些命令的脚本
【发布时间】:2015-10-15 11:50:02
【问题描述】:

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

任何帮助,建议都表示赞赏。

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

【问题讨论】:

    标签: amazon-web-services ssh fish locust


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢它的工作。我收到两条消息:Must be connected to a terminal.bash: =: command not found。我也想知道通常我必须按enter键才能激活screen,我该如何处理?
    • 将命令更改为:command='cd /path/to/project/; screen locust -f file.py --master' 使用该单个命令运行屏幕。可以进一步缩短为:command='screen locust -f /path/to/project/file.py --master'
    • 实际上,一旦你这样做了,不妨内联命令 - 我会更新我的答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-07
    • 1970-01-01
    • 2013-10-21
    • 2023-03-07
    • 2018-05-28
    • 2016-01-06
    • 1970-01-01
    相关资源
    最近更新 更多