Pergunta

Como posso matar todos os meus casos a partir da linha de comando? Existe um comando para este ou script I must-lo?

Foi útil?

Solução

Tanto quanto eu sei que não é um 'all' interruptor para o comando ec2-Finaliza-casos. Então você provavelmente terá que escrevê-lo. Não vai ser tão difícil. Você só precisa gerar uma vírgula lista de suas instâncias separadas.

Este é um script python que estou 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()

Ele usa boto biblioteca . Isso não é necessário para a tarefa específica (um shell script simples será suficiente), mas pode ser útil em muitas ocasiões.

Finalmente você está ciente da extensão Elasticfox para o Firefox? Esta é de longe a forma mais fácil de acesso EC2.

Outras dicas

Esta é uma questão de idade, mas pensei que iria partilhar uma solução 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' ' ')

Informações relacionadas:

Se os hackers têm terminação exemplo acidental desativado, primeiro executar 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 e Elasticfox torná-lo muito fácil.

Uma solução de linha de comando pode ser conseguido em uma linha usando as ferramentas EC2 API:

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

Para sermos mais completos. Aqui está outra maneira, estando mais em linha com o repertório de um programador, usando expressões regulares e os aws da CLI:

aws ec2 terminate-instances 
        --instance-ids 
         $(
          aws ec2 describe-instances 
            | grep InstanceId 
            | awk {'print $2'} 
            | sed 's/[",]//g'
          )
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top