Pregunta

¿Cómo puedo eliminar todas mis instancias desde la línea de comandos? ¿Hay un comando para esto o debo escribirlo?

¿Fue útil?

Solución

Hasta donde sé, no hay un interruptor 'all' para el comando ec2-terminate-instancia. Entonces probablemente necesites escribirlo. No será tan difícil. Solo necesita generar una lista separada por comas de sus instancias.

Este es un script de Python que estoy usando:

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()

Utiliza la boto biblioteca. Esto no es necesario para la tarea específica (un simple script de shell será suficiente), pero puede ser útil en muchas ocasiones.

Finalmente, ¿conoce la extensión Elasticfox para Firefox? Esta es, con mucho, la forma más fácil de acceder a EC2.

Otros consejos

Esta es una pregunta antigua, pero pensé que compartiría una solución para 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' ' ')

Información relacionada:

Si los hackers han deshabilitado la terminación accidental de la instancia, primero ejecute este comando:

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 Console y Elasticfox lo hace bastante fácil.

Se puede lograr una solución de línea de comandos en una línea utilizando las herramientas de API EC2:

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

Por completo. Aquí hay otra forma, estar más en línea con el repertorio de un programador, mediante el uso de expresiones regulares y el aws cli:

aws ec2 terminate-instances 
        --instance-ids 
         $(
          aws ec2 describe-instances 
            | grep InstanceId 
            | awk {'print $2'} 
            | sed 's/[",]//g'
          )
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top