我怎么可以杀死所有我的实例从命令行?是否有一个命令对于这个或者我必须剧本吗?

有帮助吗?

解决方案

据我知道有不是用于EC2-终止实例命令的“所有”开关。所以,你可能需要脚本它。它不会那么难。你只需要生成一个逗号分隔的情况下的列表。

这是我使用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()

它使用博托库。这是没有必要的特定任务(一个简单的shell脚本就足够了),但它可能在很多场合是很方便。

最后,你是否知道Elasticfox Firefox扩展的?这是迄今为止访问EC2的最简单的方法。

其他提示

这是一个老问题,但想分享为 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' ' ')

相关信息:

如果黑客已经禁用了偶然实例终止,第一运行此命令:

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

AWS控制台Elasticfox 让它很容易的。

一个命令行的解决方案可以实现的一线使用EC2API工具:

for i in `ec2din | grep running | cut -f2`; do ec2kill $i; done

有关完整性起见。 下面是另一种方式,与程序员的剧目是更符合,通过使用正则表达式和AWS CLI:

aws ec2 terminate-instances 
        --instance-ids 
         $(
          aws ec2 describe-instances 
            | grep InstanceId 
            | awk {'print $2'} 
            | sed 's/[",]//g'
          )
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top