Skip to content

Instantly share code, notes, and snippets.

@mansurali901
Last active July 10, 2018 08:38
Show Gist options
  • Save mansurali901/ca7e02c520d494948c58 to your computer and use it in GitHub Desktop.
Save mansurali901/ca7e02c520d494948c58 to your computer and use it in GitHub Desktop.
Terminate AWS instance enabled with Termination Protection usin AWS CLI Tool
#!/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