Skip to content

Instantly share code, notes, and snippets.

@DangerBlack
Created June 23, 2023 09:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save DangerBlack/d02f73f2a5143593404f035456569bbd to your computer and use it in GitHub Desktop.
Save DangerBlack/d02f73f2a5143593404f035456569bbd to your computer and use it in GitHub Desktop.
cubbit_s3_bucket_size.sh
#!/usr/bin/bash
# To configure aws cli on Cubbit you can visit
# https://docs.cubbit.io/integrations/aws-cli#installation
#MIT License
#Copyright (c) [2023] [DangerBlack]
#Permission is hereby granted, free of charge, to any person obtaining a copy
#of this software and associated documentation files (the "Software"), to deal
#in the Software without restriction, including without limitation the rights
#to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
#copies of the Software, and to permit persons to whom the Software is
#furnished to do so, subject to the following conditions:
#The above copyright notice and this permission notice shall be included in all
#copies or substantial portions of the Software.
#THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
#IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
#FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
#AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
#LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
#OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
#SOFTWARE.
set +x
PROFILE=<your Cubbit profile>
function calc_cubbit_S3_bucket_size() {
sizeInBytes=`aws --profile ${PROFILE} --endpoint https://s3.cubbit.eu s3 ls s3://"${1}" --recursive --human-readable --summarize | awk END'{print}'`
echo ${1},${sizeInBytes} >> allregions-buckets-s3-sizes.csv
printf "DONE. Size of the bucket ${1}. %s\n " "${sizeInBytes}"
}
[ -f allregions-buckets-s3-sizes.csv ] && rm -fr allregions-buckets-s3-sizes.csv
buckets=`aws --profile ${PROFILE} --endpoint https://s3.cubbit.eu s3 ls | awk '{print $3}'`
i=1
for j in ${buckets}; do
printf "calculating the size of the bucket[%s]=%s. \n " "${i}" "${j}"
i=$((i+1))
# to expedite the calculation, make the cli commands run parallel in the background
calc_cubbit_S3_bucket_size ${j} &
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment