AWS S3 Bucket Sizer || Bash Script
#!/bin/sh set -e | |
# Script finds all buckets within the specified account and outputs the total size together with the number of files contained in the bucket. | |
usage() { | |
echo "Usage: $0 <aws config profile>" | |
echo " e.g.: $0 aws_production" | |
echo "Make sure your AWS CLI is configured" | |
echo " " | |
exit 1 | |
} | |
if [ -z "$1" ];then | |
usage | |
fi | |
AWS_PROFILE=$1 | |
# find all buckets in the account. | |
S3_BUCKET_IDS=$(aws s3api list-buckets --profile $AWS_PROFILE --query 'Buckets[*].Name' --output text) | |
for i in ${S3_BUCKET_IDS[@]} | |
do | |
echo "calculating size of bucket: " $i | |
aws s3api --profile $AWS_PROFILE list-objects --bucket $i --output json --query "[sum(Contents[].Size), length(Contents[])]" | awk 'NR!=2 {print $0;next} NR==2 {print $0/1024/1024/1024" GB"}' | |
done |
Comments
Post a Comment