2017-03-16 35 views
0

下面給出的命令是否適用於刪除AWS EC2快照月份以前的月份。刪除月份比AWS EC2快的月份

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

+1

爲什麼不在'delete-snapshot'命令中添加'--dry-run'並自行測試? –

回答

2

你的命令將不會工作,主要是因爲一個錯字:aws describe-snapshots應該aws ec2 describe-snapshots

無論如何,你可以做到這一點沒有比AWS任何其他工具:

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 

確保你總是知道什麼是你刪除。例如,通過echo $snap
此外,將--dry-run添加到aws ec2 delete-snapshot可以告訴您請求中沒有錯誤。


編輯:

有兩件事情在第一個命令注意:

  1. --owner-ids - 您的帳戶唯一ID。 JMESPath查詢其只能獲得創建快照不遲於指定日期 - Support->Support Center->Account Number xxxxxxxxxxxx

  2. --query(如:2017年2月15日):Snapshots[?StartTime>=`2017-02-15`].SnapshotId

+1

糾正我,如果我錯了,但?StartTime> ='2017-02-15'會選擇比2017-02-15更快的快照嗎?所以我認爲這是<=而不是> =。 – ThePerson

1

可以很容易地在AWS控制檯的右上角手動發現您可以嘗試http://botmetric.com,只需點擊一下,它就可以幫助您根據所需的時間範圍刪除AWS EC2舊快照,並根據帳單,安全性和更多信息來建議您。