كيف يمكنني قتل كل ما عندي من الحالات EC2 من سطر الأوامر؟

StackOverflow https://stackoverflow.com/questions/638352

  •  10-07-2019
  •  | 
  •  

سؤال

وكيف يمكنني قتل جميع الحالات بلدي من سطر الأوامر؟ هل هناك قيادة لهذا أو يجب I النصي ذلك؟

هل كانت مفيدة؟

المحلول

وبقدر ما أعرف ليس هناك 'كل' التبديل للأمر EC2-إنهاء-الحالات. لذا ربما تحتاج إلى برنامج نصي ذلك. فإنه لن يكون بالأمر الصعب. تحتاج فقط إلى إنشاء قائمة مفصولة بفواصل من الحالات الخاصة بك.

وهذا هو السيناريو بيثون أستخدمه:

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

بوتو المكتبة. هذا ليس ضروريا لمهمة محددة (وشيل بسيطة تكون كافية)، ولكن قد يكون مفيد في العديد من المناسبات.

وأنت أخيرا على بينة من تمديد Elasticfox لفايرفوكس؟ هذا هو إلى حد بعيد أسهل طريقة للوصول إلى 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 وحدة التحكم و <لأ href = "HTTP: // المطور .amazonwebservices.com / اتصال / entry.jspa؟ entryID = 609 "يختلط =" noreferrer "عنوان =" Elasticfox "> Elasticfox تجعل من السهل جدا.

وحل سطر الأوامر يمكن أن يتحقق في سطر واحد باستخدام أدوات API EC2:

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

لأجل اكتمالها. وإليك طريقة أخرى، ويجري أكثر انسجاما مع مرجع مبرمج، وذلك باستخدام التعبيرات العادية وأوس المبادرة القطرية:

aws ec2 terminate-instances 
        --instance-ids 
         $(
          aws ec2 describe-instances 
            | grep InstanceId 
            | awk {'print $2'} 
            | sed 's/[",]//g'
          )
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top