2014-03-26 31 views
2

我想从命令ec2-describe-instances的结果中提取实例ID和标签,并希望将结果存储在文本文件中。结果集给出了:如何在shell脚本中获取ec2-describe-instances的标签

但我想的标签所有者和cost.centre也被拿来 请指导我该怎么做

+1

你能举一个预期产出的例子吗?你试过什么了? –

+0

的EC2-描述,实例给出了一个没有属性的,我只是想实例ID和名字一样,成本中心和业主的标签从结果中获取。 – user3086014

回答

1

如果我理解正确的问题,我想你只需要添加表情你的第二个grep的:

ec2-describe-instances | grep -i "tag" | grep -i -e "name" -e "owner" -e "cost.centre" 
+0

看到更新后的问题我希望重复单个实例来一行! – user3086014

+0

好心帮.... – user3086014

+0

可以请你帮我数创伤 – user3086014

1

这将是不必要的复杂的shell脚本来完成。以下是一些建议:

  1. 您正在使用ec2cli。不要使用它。改为使用AWS-CLI。因为解析ec2cli中的输出是一种痛苦。 AWS-CLIJSON中提供输出,而解析则更容易。此外,AWS今后将仅支持AWS-CLI
  2. 您需要使用散列的完美用例的信息。您可以通过perl脚本安装并运行AWs-CLI命令,然后在散列中捕获输出。 Perl对于处理这样的数据结构非常强大。
  3. 或者,您可以使用AWS的一个SDK(我使用Ruby SDK),然后在散列中捕获整个信息,然后以您想要的方式打印。

底线是,您需要在散列中捕获标记以使您的生活更轻松。当你有多个标签时,这变得越来越突出。

+0

如何使用AWS cli? – user3086014

+0

阅读文档:http://aws.amazon.com/cli/。花点时间仔细阅读。你以后会感谢我。自从我开始使用它以来,我无法活下去。 – slayedbylucifer

+0

但它需要时间。你能帮助我解决这个问题吗? – user3086014

1

用awk

ec2-describe-instances |awk 'BEGIN{IGNORECASE=1}/(name|owner|cost.center)/&&/tag/' 

TAG instance i-c4 Name Rii_Win_SAML 
TAG instance i-c42 Owner Rii Pandey 
+0

我想在单行中与单个实例相关的标签。 – user3086014

+0

你能否更新你的示例文件,目前的一个让我困惑如何得到结果。例如,我没有在源文件中看到'Naveen',但是你在输出中请求它。 – BMW

+0

实际上这个文件太长了,我只提取了一部分 – user3086014

2

这将有助于找到实例ID

$ AWS EC2描述,实例--filters名称= VPC-ID,值= VPC-XXX | awk'{print $ 8}'| sort -n | grep的 “异”

I-4115d38c

I-5d534697

I-6e679a45

I-7a659851

I-8d6bae40

I-cd6f9000

I-d264ad1e

I-d5888618

I-e2332e2e

PS考虑到你已经配置/运行 “AWS配置”

0

这应该工作:

aws ec2 describe-instances | jq '.Reservations[].Instances[] | select(contains({Tags: [{Key: "owner"},{Key: "costcenter"}]}))|"Instance ID: \(.InstanceId) Owner: \(.Tags[]|select(.Key=="owner")|.Value), Cost Center: \(.Tags[]|select(.Key=="costcenter")|.Value)"' 

TL; DR:方式AWS确实标签是一个活生生的噩梦,即使jq

此外,使用AWS CLI,不老,unsuppor特德工具。

1

这里是另一种方式,而无需使用JQ和其他分析工具做。

ec2 describe-instances --query 'Reservations[*].Instances[*].[InstanceId,Tags[?Key==`Name`].Value | [0],Tags[?Key==`cost.centre`].Value | [0]]' --output text 
相关问题