Last active
July 10, 2018 08:38
-
-
Save mansurali901/ca7e02c520d494948c58 to your computer and use it in GitHub Desktop.
Terminate AWS instance enabled with Termination Protection usin AWS CLI Tool
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# | |
# This Script is Designed to Search and Termintate instances | |
# AWS Cloud using API Tool | |
# Author Mansur UlHasan | |
# [email protected] | |
# | |
# Search instance with specific criteria | |
SearchCriteria () { | |
read -p "Instance Searching Criteria " criteria | |
aws ec2 describe-instances --query 'Reservations[].Instances[].[InstanceId,Tags[?Key==`Name`].Value[]]' --output text | sed 's/None$/None\n/' | sed '$!N;s/\n/ /' |grep -i $criteria > instances-list | |
cat instances-list |awk '{print $1}' >instances-list2 | |
} | |
# This Section disable termination | |
DisableTermination () { | |
for instances in `cat instances-list2` | |
do | |
echo $instances | |
aws ec2 modify-instance-attribute --instance-id $instances --no-disable-api-termination | |
done | |
} | |
# This section will terminate instance | |
TerminateInstance () { | |
for i in `cat instances-list2` | |
do | |
echo "Terminating $i" | |
aws ec2 terminate-instances --instance-ids $i | |
done | |
} | |
case $1 in | |
--search) | |
SearchCriteria | |
;; | |
--disabletermination) | |
DisableTermination | |
;; | |
--Terminate) | |
TerminateInstance | |
;; | |
*) | |
echo "Invalid Argument | |
Possible Values : | |
--search = Search Instances | |
--disabletermination = Disable Termination | |
--Terminate = Terminate Instances | |
" | |
;; | |
esac |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment