Comment référencer le volume EBS ou les informations d'instantané pour mon instance Amazon EC2 à l'aide de l'interface de ligne de commande AWS ?
Dernière mise à jour : 18/01/2021
Comment référencer le volume Amazon Elastic Block Store (Amazon EBS) ou les informations sur un instantané pour mon instance Amazon Elastic Compute Cloud (Amazon EC2) à l'aide de l'interface de ligne de commande AWS (CLI AWS) ?
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 wget -O jq https://github.com/stedolan/jq/releases/download/jq-1.6/jq-linux64
$ sudo chmod +x ./jq
$ sudo cp jq /usr/bin
Pour les autres distributions, consultez jq Command Line Processor sur le site web GitHub afin d'obtenir des instructions sur le téléchargement et l'installation.
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 self --output json | jq '.Snapshots[] | select(.StartTime < "'$(date --date='-1 month' '+%Y-%m-%d')'") | [.Description, .StartTime, .SnapshotId]'
Répertorier les instantanés de plus de 1 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 | jq '.Snapshots[] | select(.StartTime < "'$(date --date='-1 month' '+%Y-%m-%d')'") | [.Description, .StartTime, .SnapshotId]' ; 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 json --region $REGION --query 'Snapshots[*].SnapshotId' | jq -r '.[]'); do aws ec2 describe-snapshot-attribute --snapshot-id $snap --region $REGION --output json --attribute createVolumePermission --query '[SnapshotId,CreateVolumePermissions[?Group == `all`]]' | jq -r '.[]'; done; echo; done
Obtenir le statut de tous les volumes actuellement à l'étape d'optimisation (après modification du volume) dans toutes les régions
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 par la valeur 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 joints à une instance dans toutes les régions
Cet exemple de commande répertorie les volumes dont le statut est défini sur 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 dans l'état « erreur » dans toutes les régions
L'exemple de commande suivant décrit tous les volumes, dans toutes les régions, pour lesquels le 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
Informations connexes
Cet article vous a-t-il été utile ?
Besoin d'aide pour une question technique ou de facturation ?