下面給出的命令是否適用於刪除AWS EC2快照月份以前的月份。刪除月份比AWS EC2快的月份
aws describe-snapshots | grep -v(日期+%Y-%m-)| grep snap- | awk'{print $ 2}'| xargs -n 1 -t aws刪除快照
下面給出的命令是否適用於刪除AWS EC2快照月份以前的月份。刪除月份比AWS EC2快的月份
aws describe-snapshots | grep -v(日期+%Y-%m-)| grep snap- | awk'{print $ 2}'| xargs -n 1 -t aws刪除快照
你的命令將不會工作,主要是因爲一個錯字: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
可以告訴您請求中沒有錯誤。
編輯:
有兩件事情在第一個命令注意:
--owner-ids
- 您的帳戶唯一ID。 JMESPath查詢其只能獲得創建快照不遲於指定日期 - Support->Support Center->Account Number xxxxxxxxxxxx
--query
(如:2017年2月15日):Snapshots[?StartTime>=`2017-02-15`].SnapshotId
糾正我,如果我錯了,但?StartTime> ='2017-02-15'會選擇比2017-02-15更快的快照嗎?所以我認爲這是<=而不是> =。 – ThePerson
可以很容易地在AWS控制檯的右上角手動發現您可以嘗試http://botmetric.com,只需點擊一下,它就可以幫助您根據所需的時間範圍刪除AWS EC2舊快照,並根據帳單,安全性和更多信息來建議您。
爲什麼不在'delete-snapshot'命令中添加'--dry-run'並自行測試? –