这是一个老问题,但我认为我将共享AWS CLI的解决方案:
aws ec2 terminate-instances --instance-ids $(aws ec2 describe-instances --filters "Name=instance-state-name,Values=pending,running,stopped,stopping" --query "Reservations[].Instances[].[InstanceId]" --output text | tr '\n' ' ')
Run Code Online (Sandbox Code Playgroud)
如果黑客已禁用意外实例终止,请首先运行此命令:
aws ec2 describe-instances --filters "Name=instance-state-name,Values=pending,running,stopped,stopping" --query "Reservations[].Instances[].[InstanceId]" --output text | xargs --delimiter '\n' --max-args=1 aws ec2 modify-instance-attribute --no-disable-api-termination --instance-id
Run Code Online (Sandbox Code Playgroud)
AWS Console和Elasticfox让它变得非常简单.
可以使用EC2 API工具在一行中实现命令行解决方案:
for i in `ec2din | grep running | cut -f2`; do ec2kill $i; done
Run Code Online (Sandbox Code Playgroud)
据我所知,ec2-terminate-instances 命令没有“all”开关。所以你可能需要编写脚本。不会那么难。您只需要生成一个以逗号分隔的实例列表。
这是我正在使用的 python 脚本:
import sys
import time
from boto.ec2.connection import EC2Connection
def main():
conn = EC2Connection('', '')
instances = conn.get_all_instances()
print instances
for reserv in instances:
for inst in reserv.instances:
if inst.state == u'running':
print "Terminating instance %s" % inst
inst.stop()
if __name__ == "__main__":
main()
Run Code Online (Sandbox Code Playgroud)
它使用boto库。这对于特定任务来说并不是必需的(一个简单的 shell 脚本就足够了),但它在许多场合可能很方便。
最后您知道 Firefox 的 Elasticfox 扩展了吗?这是迄今为止访问 EC2 最简单的方法。
| 归档时间: |
|
| 查看次数: |
5574 次 |
| 最近记录: |