我正在尝试通过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)'
答案 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
免责声明:我自己既没有彻底审核也没有测试过该脚本!
因此,如果脚本删除了良好的数据,您应该在生产中使用它之前自行检查和测试。
祝你好运!