添加 saveEbs.sh
This commit is contained in:
parent
9f60c8deec
commit
7d870b14c3
54
saveEbs.sh
Normal file
54
saveEbs.sh
Normal file
@ -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 <<EOF
|
||||
[
|
||||
{
|
||||
"DeviceName": "$device",
|
||||
"Ebs": {
|
||||
"DeleteOnTermination": false
|
||||
}
|
||||
}
|
||||
]
|
||||
EOF
|
||||
|
||||
# 修改属性
|
||||
aws ec2 modify-instance-attribute \
|
||||
--region $region \
|
||||
--instance-id $instance_id \
|
||||
--block-device-mappings file://$tmpfile
|
||||
|
||||
rm -f $tmpfile
|
||||
done
|
||||
done
|
||||
done
|
||||
|
||||
echo "All instances processed."
|
||||
Loading…
x
Reference in New Issue
Block a user