बैश स्क्रिप्ट को चलाने के लिए एडब्ल्यूएस सीएलआई आदेश में समानांतर करने के लिए समय को कम करने

0

सवाल

खेद है कि मैं कर रहा हूँ अभी भी नया करने के लिए मार स्क्रिप्टिंग. मैं लगभग 10000 EC2 उदाहरण के लिए, मैं इस बनाया बैश स्क्रिप्ट को बदलने के लिए मेरे EC2 उदाहरण प्रकार, सभी इंस्टेंस नाम और प्रकार हैं, एक फ़ाइल में संग्रहीत. कोड काम कर रहा है लेकिन यह इतने लंबे समय ले माध्यम से चलाने के लिए उदाहरण के द्वारा उदाहरण.

करता है किसी भी है जानता है कि अगर मैं चला सकते हैं एडब्ल्यूएस सीएलआई आदेश पर सभी EC2 के उदाहरण में एक जाना है ? धन्यवाद :)

#!/bin/bash

my_file='test.txt'

declare -a instanceID
declare -a fmo #Future Instance Size

while IFS=, read -r COL1 COL2; do

   instanceID+=("$COL1")
   fmo+=("$COL2")   

done <"$my_file"

len=${#instanceID[@]}

for (( i=0; i < $len; i++)); do

   vm_instance_id="${instanceID[$i]}"
   vm_type="${fmo[$i]}"

   echo Stoping $vm_instance_id
   aws ec2 stop-instances --instance-ids $vm_instance_id

   echo " Waiting for $vm_instance_id state to be STOP "
   aws ec2 wait instance-stopped --instance-ids $vm_instance_id


   echo Resizing $vm_instance_id to $vm_type 
   aws ec2 modify-instance-attribute --instance-id $vm_instance_id --instance-type $vm_type
   


   echo Starting $vm_instance_id 
   aws ec2 start-instances --instance-ids $vm_instance_id
    

done
automation aws-automation aws-cli bash
2021-11-23 09:52:30
2

सबसे अच्छा जवाब

1

Refactor करने के लिए अपने कोड के साथ एक समारोह में पारित कर दिया है कि एक लाइन से फाइल.

work() {
   IFS=, read -r instanceID fmo <<<"$1"
   stuff "$instanceID" "$fmo"
}

चलाने के लिए जीएनयू xargs या जीएनयू समानांतर की प्रत्येक पंक्ति के लिए फ़ाइल कहता है कि निर्यात समारोह. का उपयोग करें -P विकल्प को चलाने के समारोह में paralell, दस्तावेज़ देखें.

export -f work
xargs -P0 -t bash -c 'work "$@"' -- <"$my_file"
2021-11-23 10:03:16
0

के रूप में @KamilCuk बताया यहाँ, आप आसानी से कर सकते हैं इस चलाने के लिए समानांतर में. हालांकि, अगर आप इस स्क्रिप्ट को चलाने समानांतर में, तुम हो रही अंत हो सकता से गला घोंटकर EC2, तो सुनिश्चित करें कि आप कुछ में शामिल हैं backoff + पुनर्प्रयास लॉजिक / सम्मान की सीमा निर्दिष्ट यहाँ https://docs.aws.amazon.com/AWSEC2/latest/APIReference/throttling.html

2021-11-25 06:11:48

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में