Skip to content

Instantly share code, notes, and snippets.

@mdrakiburrahman
Created January 16, 2023 20:16
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 mdrakiburrahman/f331b88cee47cbd18fc41e55848db66a to your computer and use it in GitHub Desktop.
Save mdrakiburrahman/f331b88cee47cbd18fc41e55848db66a to your computer and use it in GitHub Desktop.
#!/bin/bash
# Continue on error
set +e
# Params
resource_group="arcdata-ci-direct"
days_to_keep=7
# Get current date and calculate 7 days ago in seconds
current_date_in_seconds=$(date +%s)
seconds_to_keep=$((days_to_keep * 86400))
days_ago_in_seconds=$((current_date_in_seconds - seconds_to_keep))
# Query resources and loop
resources=($(az resource list --resource-group $resource_group | jq '.[].id' | tr -d '"'))
for ((i = 0; i < ${#resources[@]}; i++)); do
short_name=$(echo ${resources[$i]} | cut -d'/' -f 9)
echo "Resource: $short_name"
# Get resource creation date
resource_details=$(az resource show --ids ${resources[$i]})
resource_date=$(echo $resource_details | jq '.systemData.createdAt' | xargs date -d | awk '{print $2,$3,$4}')
resource_time=$(date -d "$resource_date" +%s)
echo "Creation date: $resource_date, seconds: $resource_time"
# Compare against filter
if [ $resource_time -lt $days_ago_in_seconds ]; then
echo "Resource creation time $resource_date is more than filter: $days_to_keep"
# Attempt Delete
echo "Attempting resource delete: $resource"
az resource delete --ids ${resources[$i]} --no-wait
ret_code=$?
if [ $ret_code -eq 0 ]; then
echo "✅ Resource deleted successfully"
else
echo "❌ Resource delete failed with code: $ret_code"
fi
else
echo "Resource creation time $resource_date is less than filter: $days_to_keep"
echo "Skipping resource delete: $resource"
fi
echo ""
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment