删除早于月份的AWS EC2快照

Sha*_*i B 2 amazon-ec2 amazon-web-services

下面给出的命令是否可用于删除早于月份的AWS EC2快照.

aws describe-snapshots | grep -v(日期+%Y-%m - )| grep snap- | awk'{print $ 2}'| xargs -n 1 -t aws delete-snapshot

Rom*_*zha 11

你的命令不会起作用,主要是因为一个错字:aws describe-snapshots应该是aws ec2 describe-snapshots.

无论如何,您可以在没有任何其他工具的情况下执行此操作:

snapshots_to_delete=$(aws ec2 describe-snapshots --owner-ids xxxxxxxxxxxx --query 'Snapshots[?StartTime<=`2017-02-15`].SnapshotId' --output text)
echo "List of snapshots to delete: $snapshots_to_delete"

# actual deletion
for snap in $snapshots_to_delete; do
  aws ec2 delete-snapshot --snapshot-id $snap
done
Run Code Online (Sandbox Code Playgroud)

确保您始终知道要删除的内容.echo $snap例如,通过.
此外,增加--dry-runaws ec2 delete-snapshot可以告诉你,有在要求没有错误.


编辑:

第一个命令有两点需要注意:

  1. --owner-ids - 您的帐户唯一ID.可以在AWS Console的右上角轻松找到:Support->Support Center->Account Number xxxxxxxxxxxx

  2. --query - JMESPath查询仅获取在指定日期之后创建的快照(例如:2017-02-15): Snapshots[?StartTime>=`2017-02-15`].SnapshotId

  • 如果我错了,请纠正我,但是?StartTime> =`2017-02-15`会选择比2017-02-15更新的快照吗?所以我认为这要<=而不是> =. (7认同)