添加 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