Frage

Wie kann ich töten alle meine Instanzen von der Kommandozeile? Gibt es einen Befehl für dieses oder muss ich Skript es?

War es hilfreich?

Lösung

Soweit ich weiß, gibt es keine ‚alle‘ Schalter für den EC2-terminate-Instanzen Befehl. So müssen Sie wahrscheinlich es Skript. Es wird nicht so schwer sein. Sie müssen nur eine durch Kommata getrennte Liste Ihrer Instanzen erzeugen.

Dies ist ein Python-Skript Ich benutze:

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

Es verwendet Boto Bibliothek. Dies ist nicht notwendig für die spezifische Aufgabe (ein einfacher Shell-Skript wird genug sein), aber es kann in vielen Fällen sehr nützlich sein.

Schließlich sind Sie sich bewusst Elasticfox Erweiterung für Firefox? Dies ist bei weitem der einfachste Weg, EC2 zugreifen zu können.

Andere Tipps

Dies ist eine alte Frage, aber dachte, ich würde eine Lösung für AWS CLI teilen :

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

Einschlägige Informationen:

Wenn Hacker deaktiviert zufällige Instanz Terminierung, zuerst diesen Befehl ausführen:

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-Konsole und Elasticfox es ziemlich einfach.

Eine Befehlszeile Lösung kann in einer Zeile mit den EC2-API-Tool erreicht werden:

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

Der Vollständigkeit halber. Hier ist eine andere Art und Weise, mehr im Einklang mit dem Repertoire eines Programmierers zu sein, von regulären Ausdrücken und die aws cli:

aws ec2 terminate-instances 
        --instance-ids 
         $(
          aws ec2 describe-instances 
            | grep InstanceId 
            | awk {'print $2'} 
            | sed 's/[",]//g'
          )
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top