如何判断AWS快照已删除?如何筛选未删除的AWS快照?
AWS快照相关问题解答
问题1:如何判断AWS快照是否已删除?
- 使用AWS CLI查询:执行
aws ec2 describe-snapshots --snapshot-id <目标快照ID>,如果返回**InvalidSnapshot.NotFound**错误,说明快照已被删除;如果返回包含快照详细信息的结果(如你提供的示例),则快照仍存在于你的账户中。 - 通过AWS管理控制台验证:登录EC2控制台,进入「快照」页面,搜索目标快照ID,若无法找到匹配结果,说明快照已删除。
问题2:如何避开已删除快照的查询语句?
首先明确:如果describe-snapshots命令能返回快照信息(比如你提供的示例中State为completed),说明该快照并未被删除,可能是删除操作未成功执行。
如果是批量查询快照时,想要只返回当前存在且可用的快照,可以使用以下方式:
- 仅查询自己账户下状态为
completed的快照:
aws ec2 describe-snapshots --owner-self --filters "Name=status,Values=completed"
- 批量验证多个快照ID是否存在(自动过滤已删除的快照):
通过Shell脚本遍历快照ID列表,跳过查询失败的条目:
# 替换为你的快照ID列表 SNAPSHOT_IDS=("snap-00012345cac2b3de1" "snap-xxxxxxxxx" "snap-yyyyyyyyy") for snap_id in "${SNAPSHOT_IDS[@]}"; do # 执行查询并将错误输出重定向到/dev/null aws ec2 describe-snapshots --snapshot-id "$snap_id" 2>/dev/null # 检查命令执行状态,非0表示快照已删除或不存在 if [ $? -ne 0 ]; then echo "快照 $snap_id 已删除或不存在,跳过" fi done
内容的提问来源于stack exchange,提问作者Dan
相关产品推荐
相关产品推荐

