كيف يمكنني قتل كل ما عندي من الحالات EC2 من سطر الأوامر؟
-
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'
)