Comment référencer le volume Amazon EBS ou les informations d'instantané pour mon instance Amazon EC2 à l'aide de l'AWS Command Line Interface (AWS CLI) ?

Dernière mise à jour : 27-04-2022

Comment référencer le volume Amazon Elastic Block Store (Amazon EBS) ou les informations d'instantané pour mon instance Amazon Elastic Compute Cloud (Amazon EC2) à l'aide de l'AWS Command Line Interface (AWS CLI) ?

Résolution

Remarque : si vous recevez des erreurs lors de l'exécution de commandes depuis l'interface de ligne de commande AWS, assurez-vous que vous utilisez la version la plus récente d’AWS CLI.

Remarque : installez le processeur jq avant d'exécuter les commandes.

Amazon Linux et Amazon Linux 2 :

$ sudo yum install jq

Pour obtenir d'autres instructions d'installation de distribution Linux et des commandes de syntaxe, consultez la documentation de votre distribution Linux.

Rechercher tous les instantanés datant de plus d'un mois

La commande suivante répertorie tous les instantanés EBS à l'aide de l'opération describe-snapshots, pour lesquels l'horodatage date de plus d'un mois (--date='-1 month').

aws ec2 describe-snapshots \
    --owner-ids self \
    --query "Snapshots[?(StartTime<='$(date --date='-1 month' '+%Y-%m-%d')')].{ID:SnapshotId,Time:StartTime,Details:Description}"

Répertorier les instantanés de plus d'un mois dans toutes les régions

L'exemple de commande suivant utilise la même commande que dans le premier exemple. Il effectue également une boucle à travers les instantanés dans toutes les régions à l'aide de l'opération décrire-régions.

for REGION in $(aws ec2 describe-regions --output text --query 'Regions[].[RegionName]') ; do echo $REGION && aws ec2 describe-snapshots --owner self --region $REGION --output json --query "Snapshots[?(StartTime<='$(date --date='-1 month' '+%Y-%m-%d')')].{ID:SnapshotId,Time:StartTime,Details:Description}" ; done

Rechercher tous les instantanés disponibles publiquement dans un compte AWS dans toutes les régions

Cet exemple de commande répertorie tous les instantanés pour lesquels le groupe CreateVolumePermission est égal à all (tous) pour toutes les régions.

for REGION in $(aws ec2 describe-regions --output text --query 'Regions[].[RegionName]') ; do echo "$REGION:"; for snap in $(aws ec2 describe-snapshots --owner self --output text --region $REGION --query 'Snapshots[*].SnapshotId'); do aws ec2 describe-snapshot-attribute --snapshot-id $snap --region $REGION --output text --attribute createVolumePermission --query '[SnapshotId,CreateVolumePermissions[?Group == `all`]]'; done; echo; done

L'exemple de commande suivant répertorie tous les volumes à l'aide de l'opération describe-volumes-modifications, où l'opération modification-state est définie sur la valeur optimizing (optimisation) pour toutes les régions.

$ for REGION in $(aws ec2 describe-regions --output text --query 'Regions[].[RegionName]') ; do echo $REGION && aws ec2 describe-volumes-modifications --query 'VolumesModifications[].{VolumeID:VolumeId,TargetSize:TargetSize,OriginalSize:OriginalSize,Progress:Progress,OriginalIops:OriginalIops,TargetIops:TargetIops}' --output json --filter 'Name=modification-state,Values=optimizing' --region $REGION; done

Rechercher tous les volumes non attachés à une instance dans toutes les régions

Cet exemple de commande répertorie les volumes dont le status (statut) est défini sur available (disponible) pour toutes les régions.

$ for REGION in $(aws ec2 describe-regions --output text --query 'Regions[].[RegionName]') ; do echo $REGION && aws ec2 describe-volumes --filter "Name=status,Values=available" --query 'Volumes[*].{VolumeID:VolumeId,Size:Size,Type:VolumeType,AvailabilityZone:AvailabilityZone}' --region $REGION; done

Rechercher tous les volumes à l'état « error » (erreur) dans toutes les régions

L'exemple de commande suivant décrit tous les volumes, dans toutes les régions, pour lesquels le status (statut) est défini sur error (erreur).

$ for REGION in $(aws ec2 describe-regions --output text --query 'Regions[].[RegionName]') ; do echo $REGION && aws ec2 describe-volumes --filter "Name=status,Values=error" --query 'Volumes[*].{VolumeID:VolumeId,Size:Size,Type:VolumeType,AvailabilityZone:AvailabilityZone}' --region $REGION; done

Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?