我是 python 新手,如果有人向我分享一个示例脚本,这将会非常有帮助
获取每个 AWS 卷的最新快照 ID#。
我正在使用 AWS api。
最佳答案
这是我编写的一个 Python 脚本,它连接到一个区域并为每个卷创建快照,然后删除除最近的 N 个快照之外的快照。
您将看到快照按 start_time
排序,然后使用快照 ID 删除最旧的快照:
#!/usr/bin/env python
import boto.ec2, os
MAX_SNAPSHOTS = 2 # Number of snapshots to keep
# Connect to EC2 in this region
connection = boto.ec2.connect_to_region('us-west-2')
# Get a list of all volumes
volumes = connection.get_all_volumes()
# Create a snapshot of each volume
for v in volumes:
connection.create_snapshot(v.id)
# Too many snapshots?
snapshots = v.snapshots()
if len(snapshots) > MAX_SNAPSHOTS:
# Delete oldest snapshots, but keep MAX_SNAPSHOTS available
snap_sorted = sorted([(s.id, s.start_time) for s in snapshots], key=lambda k: k[1])
for s in snap_sorted[:-MAX_SNAPSHOTS]:
print "Deleting snapshot", s[0]
connection.delete_snapshot(s[0])
通过 snap_sorted
分配,您可以找到最旧的快照。
关于python - 如何使用 python/boto 获取最新的 aws 卷快照 id#?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28221043/