lavenderguitar
2 years ago
1 changed files with 50 additions and 0 deletions
@ -0,0 +1,50 @@ |
|||||
|
#!/bin/bash |
||||
|
|
||||
|
# List orphaned snapshots in AWS |
||||
|
|
||||
|
# Set AWS profile and region |
||||
|
export AWS_PROFILE=my_profile |
||||
|
export AWS_DEFAULT_REGION=us-east-1 |
||||
|
|
||||
|
# Get a list of all snapshots |
||||
|
snapshots=$(aws ec2 describe-snapshots --owner-ids self --query 'Snapshots[*].[SnapshotId,VolumeId]' --output text) |
||||
|
|
||||
|
# Get a list of all volumes |
||||
|
volumes=$(aws ec2 describe-volumes --query 'Volumes[*].VolumeId' --output text) |
||||
|
|
||||
|
# Create an array to hold the volume IDs |
||||
|
volume_ids=() |
||||
|
|
||||
|
# Add all volume IDs to the array |
||||
|
for volume in $volumes; do |
||||
|
volume_ids+=($volume) |
||||
|
done |
||||
|
|
||||
|
# Create an array to hold the orphaned snapshots |
||||
|
orphaned_snapshots=() |
||||
|
|
||||
|
# Check each snapshot to see if its volume ID is in the array |
||||
|
while read snapshot; do |
||||
|
snapshot_id=$(echo $snapshot | awk '{print $1}') |
||||
|
volume_id=$(echo $snapshot | awk '{print $2}') |
||||
|
if [[ ! " ${volume_ids[@]} " =~ " ${volume_id} " ]]; then |
||||
|
orphaned_snapshots+=($snapshot_id) |
||||
|
fi |
||||
|
done <<< "$snapshots" |
||||
|
|
||||
|
# Print the list of orphaned snapshots |
||||
|
echo "Orphaned Snapshots:" |
||||
|
for snapshot_id in "${orphaned_snapshots[@]}"; do |
||||
|
echo $snapshot_id |
||||
|
done |
||||
|
|
||||
|
# Delete the orphaned snapshots |
||||
|
read -p "Are you sure you want to delete ${#orphaned_snapshots[@]} snapshots? (y/n): " confirmation |
||||
|
if [[ $confirmation =~ ^[Yy]$ ]]; then |
||||
|
for snapshot_id in "${orphaned_snapshots[@]}"; do |
||||
|
aws ec2 delete-snapshot --snapshot-id $snapshot_id |
||||
|
echo "Deleted snapshot $snapshot_id" |
||||
|
done |
||||
|
else |
||||
|
echo "Aborted snapshot deletion." |
||||
|
fi |
Loading…
Reference in new issue