如何在shell脚本中获取ec2-describe-instances的标签

我想从命令ec2-describe-instances的结果中提取实例ID和标记,并且想要将结果存储在文本文件中。 结果集给出:

但是我想要标签所有者和cost.centre也被提取kindly指导我如何做到这一点

Solutions Collecting From Web of "如何在shell脚本中获取ec2-describe-instances的标签"

这将有助于查找实例ID

$ aws ec2 describe-instances –filters Name = vpc-id,Values = vpc-xxx | awk'{print $ 8}'| sort -n | grep“i-”

I-4115d38c

I-5d534697

I-6e679a45

I-7a659851

I-8d6bae40

I-cd6f9000

I-d264ad1e

I-d5888618

I-e2332e2e

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

如果我正确地理解了这个问题,我想你只需要添加表达式到你的第二个grep:

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

这在shell脚本中将会不必要的复杂。 这里有一些建议:

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

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

使用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