2014-03-26 65 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 
相關問題