我正在尝试通过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/