3

我正在尝试通过 EC2 命令行 API 工具删除 Windows AWS 实例上的 X 最新快照以外的所有 EBS 快照。我为 Linux 找到了以下内容,是否可以在 Windows 中做同样的事情?

ec2-描述-快照 | 排序-r -k 5 | sed 1,6d | awk '{print "删除快照:" $2}; system("ec2-delete-snapshot" $2)'

4

1 回答 1

1

更新

刚刚意识到您显然确实想要删除所有EBS 快照 - 以防万一,脚本也可以通过 boto 的get_all_snapshots()方法进行调整,该方法可以获取与当前凭据关联的所有 EBS 快照

您需要相应地替换面向卷的代码,例如替换

snapshots = volume.snapshots()

snapshots = conn.get_all_snapshots()

初步答案

虽然通过Amazon EC2 API 工具和相应的 PowerShell 脚本的组合当然可以,但我个人更喜欢优秀的boto以与平台无关的方式与 AWS 交互(即脚本在 Linux、MacOS、Windows 上工作)- Boto 是为 Amazon Web Services 提供接口的 Python 包

我刚刚准备在这方面组装一些东西,但是 Vaibhav Puranik 已经很容易获得它,请参阅使用 python 脚本管理 EBS 快照- 他的脚本创建一个新的ebs 快照并删除所有以前的快照,除了一些最新的快照

因此,虽然它提供了比请求更多的功能,但脚本很简单,可以根据您的需要进行调整,例如,如果需要,删除以下两行以摆脱快照创建:

if volume.create_snapshot(description):
    print 'Snapshot created with description: ' + description

免责声明:我自己既没有彻底审查也没有测试过脚本!

因此,鉴于脚本会永久删除数据,您应该在将其用于生产之前自行检查和测试它。

祝你好运!

于 2012-04-21T13:03:21.740 回答