是否可以从Windows中的命令行批量删除EBS快照?

时间:2010-09-04 16:09:59

标签: command-line amazon-ec2 amazon-ebs

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

  

ec2-describe-snapshots | sort -r -k 5 | sed 1,6d | awk'{打印   “删除快照:”$ 2}; system(“ec2-delete-snapshot”$ 2)'

1 个答案:

答案 0 :(得分:1)

更新

刚才意识到你显然想要删除所有所有 EBS快照 - 如果脚本也可以通过boto的get_all_snapshots()方法调整到这个,那么,获取< em>与当前凭据相关联的所有EBS快照。

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

snapshots = volume.snapshots()

snapshots = conn.get_all_snapshots()

初步答复

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

我刚刚在这方面集合了一些东西,但是Vaibhav Puranik随时可以使用它,请参阅Manage EBS snapshots with a python script - 他的脚本创建一个新的ebs snapshot并删除所有以前的快照除了一些最新的快照

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

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

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

因此,如果脚本删除了良好的数据,您应该在生产中使用它之前自行检查和测试。

祝你好运!