Posts

Showing posts with the label Shell

AMI Age Calculator of Running AWS EC2 Instances and Generate CSV Report

#!/bin/bash # Initialize variables with default values ACCOUNTID="<Your AccountID>" REGION="<Your Region>" OUTPUT_CSV="$ACCOUNTID-$REGION-ami_age_report.csv" # Define the CSV file name rm -rf $OUTPUT_CSV # Parse command line options while getopts "a:b:" option; do case $option in a) ACCOUNTID=${OPTARG} ;; b) REGION=${OPTARG} ;; *) echo "usage: $0 [-a ACCOUNTID] [-b REGION]" >&2 exit 1 ;; esac done # List instances and AMI IDs in the specified region instances_json=$(aws ec2 describe-instances --region "$REGION" --query 'Reservations[*].Instances[*].[InstanceId,ImageId]' --output json) # For local # Get the current timestamp current_time=$(date -u +%s) # Initialize the CSV file with headers echo "AccountID,Region,InstanceID,AMIID,AMIAge (months)" > "$OUTPUT_CSV" # Iterate through instances and append to the CSV file for row in $(echo "$insta...

AWS (Listing Unattached security groups in AWS Cloud) || Bash Script

  Hi, guys when you are working on the AWS cloud platform you will come across to get the info about unattached security groups in order to do garbage cleaning, It's a tricky job to do here I am giving AWS CLI commands to get the unattached security groups. Note: this only considers security use in EC2, not other services like RDS. You’ll need to do more work to include security groups used outside EC2. The good thing is you can’t easily (might not even be possible) to delete active security groups if you miss one associated w/another service.Using the newer AWS CLI tool, I found an easy way to get what I need: 1st Step — First, get a list of all security groups aws ec2 describe-security-groups — query ‘SecurityGroups[*].GroupId’ — output text |tr ‘\t’’\n’ Then get all security groups tied to an instance, then piped to sort then uniq: aws ec2 describe-instances query‘Reservations[*].Instances[*].SecurityGroups[*].GroupId’ — output text |tr ‘\t’’\n’|sort |uniq Then put it together a...