2017-03-16 12 views
0

このコマンドは、AWS EC2スナップショットよりも古いものを削除するかどうかを指定しますか?月より古いAWS EC2スナップショットを削除する

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

+1

'--dry-run'を' delete-snapshot'コマンドに追加して自分でテストしてみませんか? –

答えて

2

あなたのコマンドは、ほとんど誤植のために動作しません。aws describe-snapshotsaws 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-runaws ec2 delete-snapshotを追加すると、リクエストにエラーがないことがわかります。


編集:

  1. --owner-ids - あなたはユニークなIDをアカウント:

    最初のコマンドでの注意を払うために2つのものがあります。 (:2017年2月15日など):Snapshots[?StartTime>=`2017-02-15`].SnapshotId

+1

私が間違っている場合は私を訂正しますか?StartTime> = '2017-02-15'は2017-02-15より新しいスナップショットを選択しますか?だから私はこれが<= =よりむしろ> =と思っていると思います。 – ThePerson

1

指定した日付より後に作成されたスナップショットのみを取得しJMESPathクエリ - Support->Support Center->Account Number xxxxxxxxxxxx

  • --query:簡単にAWSコンソールの右上隅に手動で見つけることができますあなたはhttp://botmetric.comを試すことができます。これは、ワンクリックで必要な時間枠に基づいてAWS EC2の古いスナップショットを削除するのに役立ちます。また、請求、セキュリティ、およびその他多くに基づいて提案します。

  • 関連する問題