Sco*_*Bob 3 json command-line-interface amazon-web-services aws-cli
我需要从 awscli 报告 5 列。例如,最后拍摄的快照、拍摄日期、使用的标签(如果有)、实例的名称标签和实例 ID
下面将列出所有快照和所用时间以及报告“空”名称...
aws ec2 describe-snapshots --query 'Snapshots[*].{ID:SnapshotId,Time:StartTime,Name:Tags[?Key==`Name`]|[0].Value}'
Run Code Online (Sandbox Code Playgroud)
这将为我提供快照的描述、快照 ID 和日期:
aws ec2 describe-snapshots --owner self --output json | jq '.Snapshots[] | select(.StartTime < "'$(date --date='-1 month' '+%Y-%m-%d')'") | [.Description, .StartTime, .SnapshotId]'
Run Code Online (Sandbox Code Playgroud)
所以基本上我有一些东西可以给我快照数据,将查询日期并告诉我拍摄的时间,但我缺少所有的完整要求。
我想对我来说主要的障碍是如何只报告为实例拍摄的最后一个快照。有人可以帮忙吗?
您可以使用sort_by获取最新的快照。
aws ec2 describe-snapshots --query "sort_by(Snapshots, &StartTime)[-1].{SnapshotId:SnapshotId,StartTime:StartTime}"
Run Code Online (Sandbox Code Playgroud)
输出
{
"SnapshotId": "snap-123456",
"StartTime": "2020-07-07T13:57:05.982Z"
}
Run Code Online (Sandbox Code Playgroud)
或者如果您只是寻找您所拥有的
MY_ACCOUNT_ID=1234567 aws ec2 describe-snapshots --filter "Name=owner-id,Values=$MY_ACCOUNT_ID" --query "sort_by(Snapshots, &StartTime)[-1].{SnapshotId:SnapshotId,StartTime:StartTime}"
Run Code Online (Sandbox Code Playgroud)
更新:
由于上面的查询不包含实例信息,因此可以通过反向查询来获取实例信息。首先查找快照,然后使用附加卷 ID 查找实例 ID。
VOLUME_ID=$(aws ec2 describe-snapshots --filter "Name=owner-id,Values=$MY_ACCOUNT_ID" --query "sort_by(Snapshots, &StartTime)[-1].VolumeId" --output text)
aws ec2 describe-volumes --filter "Name=volume-id,Values=$VOLUME_ID" --query 'Volumes[?Attachments != `null`].Attachments[].InstanceId'
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2646 次 |
最近记录: |