diff --git a/saveEbs.sh b/saveEbs.sh new file mode 100644 index 0000000..a8b5da5 --- /dev/null +++ b/saveEbs.sh @@ -0,0 +1,54 @@ +#!/bin/bash + +# 获取所有可用的 region +regions=$(aws ec2 describe-regions --query 'Regions[*].RegionName' --output text) +# regions=ap-south-1 + +for region in $regions; do + echo "=== Processing region: $region ===" + + # 获取当前 region 的实例 ID 列表 + instance_ids=$(aws ec2 describe-instances \ + --region $region \ + --query 'Reservations[*].Instances[*].InstanceId' \ + --output text) + + for instance_id in $instance_ids; do + echo "---- Instance: $instance_id ----" + + # 获取该实例的全部 EBS block device mapping + devices=$(aws ec2 describe-instances \ + --region $region \ + --instance-ids $instance_id \ + --query 'Reservations[0].Instances[0].BlockDeviceMappings[*].DeviceName' \ + --output text) + + for device in $devices; do + echo "Setting DeleteOnTermination=false for $instance_id ($device)" + + # 创建临时 JSON 文件 + tmpfile=$(mktemp) + + cat > $tmpfile <