Удаление моментального снимка EBS из сценария оболочки с фильтром по имени и дате

#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 В данном случае это тег. Поэтому вам нужно фильтровать по значению тега.