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


ec2-describe-snapshots |排序-r -k 5 | sed 1,6天| awk'{print
“删除快照:” $ 2}; system(“ ec2-delete-snapshot” $ 2)'

最佳答案

更新资料

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

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

snapshots = volume.snapshots()




snapshots = conn.get_all_snapshots()




初步答案

虽然当然也可以通过结合使用Amazon EC2 API Tools和相应的PowerShell脚本来实现,但我个人更喜欢出色的boto以与平台无关的方式与AWS进行交互(即,这些脚本可以在Linux,MacOS,Windows上运行)-Boto是提供与Amazon Web Services的接口的Python软件包。

在这方面,我已经准备好组装一些东西,但是Vaibhav Puranik可以随时使用它,请参见Manage EBS snapshots with a python script-他的脚本创建了一个新的ebs snapshot并删除了所有先前的快照,除了一些最新的快照。

因此,尽管脚本提供的功能超出了要求,但脚本非常简单,可以根据需要进行调整,例如如果需要,请删除以下两行以摆脱快照创建:

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


免责声明:我自己尚未彻底审查或测试脚本!

因此,鉴于脚本永久删除了数据,因此在生产中使用数据之前,您应该自己进行检查和测试。

祝好运!

关于command-line - 是否可以在Windows中从命令行批量删除EBS快照?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3643019/

10-15 16:12