#amazon-web-services #shell #amazon-ec2
#amazon-web-services #оболочка #amazon-ec2
Вопрос:
Привет, я хочу удалить моментальный снимок EBS, который старше 30 дней, и хочу отфильтровать его по имени. Допустим, имя содержит слово «Manish». Имя может быть таким: «Manish-Ebs-snapshot» или EBS-Manish-snapshot или EBS-ManishFinal-Snapshot»вот так. Я обнаружил одну команду, но она собирает весь снимок, а не определенную группу снимков.
snapshots_to_delete=$(aws ec2 describe-snapshots --owner-ids xxxxxxxxxxxx --query 'Snapshots[?StartTime<=`2020-08-23`].SnapshotId' --output text)
echo "List of snapshots to delete: $snapshots_to_delete"
for snap in $snapshots_to_delete; do
aws ec2 delete-snapshot --snapshot-id $snap
done
может ли кто-нибудь помочь мне с этим сценарием выше, как я могу добавить фильтр имен.
Ответ №1:
Вы можете фильтровать по описанию с помощью *Manish*
:
aws ec2 describe-snapshots --owner-ids xxxxxxxxx --filter Name=description,Values=*Manish* --query 'Snapshots[?StartTime<=`2020-08-23`].SnapshotId'
И по тегу Name
:
aws ec2 describe-snapshots --owner-ids xxxxxxxx --filter Name=tag:Name,Values=*Manish* --query 'Snapshots[?StartTime<=`2020-08-23`].SnapshotId'
Комментарии:
1. Спасибо @marcin, но я не искал описание, мы ищем фильтр по имени, а не фильтр по описанию. Даже если в описании вашей команды есть синтаксическая ошибка, оно должно быть написано маленькими символами
2. @ManishParida Спасибо, я изменил на
description
. Не уверен, что вы подразумеваете под «именем». В describe-snapshots такого файла нет. Можете ли вы указать, какое поле вы конкретно имеете в виду?3. Добавлено изображение для справки @Marcin
4. Обновлен ответ @ManishParida.
Name
В данном случае это тег. Поэтому вам нужно фильтровать по значению тега.