【发布时间】:2020-12-30 20:42:06
【问题描述】:
我需要停止启动多个 ec2 并在前后运行几个命令,在同一管理服务器上使用 bash,因此无需 ssh。我知道如何启动和停止ec2,例如:
启动实例:
#! /bin/bash
aws ec2 start-instances --instance-ids i-1a1234
停止实例:
#! /bin/bash
aws ec2 stop-instances --instance-ids i-1a1234
我想出了如何通过运行列出所有 ec2 id :i.e.:
aws ec2 describe-instances --filters "Name=tag:Name,Values=Test: Instance 1" --query 'Reservations[].Instances[].[InstanceId] --output text
我的问题是:
-
如何停止/启动多个 ec2。
-
如何获取特定的 ec2 并运行命令以在停止之前禁用服务并在 ec2 启动后启用它。
【问题讨论】:
-
使用“编辑”菜单中的
{}工具将鼠标选中的文本格式化为code/data/requiredOutput/ExactErrMsgs。祝你好运。 -
你试过
aws ec2 stop-instances --instance-ids i-1a1234 i-a1235 ...吗?如果您使用了 shell 参数 char,那么输入这种古怪的 id 似乎有问题。 (我的意思是i-部分)。如果您想为单个服务器和/或组/集群提供快捷方式或别名,您应该包括您需要的示例。创建和管理这样的别名可能会变成一个问题。祝你好运。 -
我的主要观点是如何在一个 ec2 上运行 bash 命令,例如,在我停止 i-12345 之前,我需要优雅地关闭 oracle(我通常这样做:
1) su - grid, 2) crsctl stop has -
那么我如何在脚本中从上面添加命令 1 和 2。
标签: bash amazon-web-services amazon-ec2 command-line-interface