Форматирование списка экземпляров Amazon EC2 из командной строки - PullRequest
4 голосов
/ 13 июля 2011

Я получаю данные о моих текущих экземплярах Amazon EC2 с помощью ec2-describe-instances -H, который возвращает что-то вроде следующего:

Type    ReservationID   Owner   Groups  Platform
RESERVATION r-xxxxxxxx  xxxxxxxxxxxx    default
INSTANCE    i-xxxxxxxx  ami-2b5fba42    ec2-xx-xx-xx-xx.compute-1.amazonaws.com ip-xx-xx-xx-xx.ec2.internal running user    0       m1.small    2011-07-12T21:15:39+0000    us-east-1a  aki-xxxxxxxx    ari-xxxxxxxx        monitoring-disabled xx.xx.xx.xx xx.xx.xx.xx         instance-store          paravirtual xen     sg-xxxxxxxx default

Это выглядит грязно в терминале OS X. Как я могу сделать этот вывод более читабельным?

Ответы [ 2 ]

4 голосов
/ 14 ноября 2011

Я только что написал небольшой скрипт bash / awk, который может вас заинтересовать:

https://github.com/epheph/fec2din

Он отображает вывод экземпляра EC2 в формате:

Instance: i-57192e11
AMI: ami-a7f539ce
Type: t1.micro
Public IP: 50.99.41.60 (ec2-50-99-41-60.compute-1.amazonaws.com)
Private IP: 10.99.241.197
Public Key: production
Start Time: 2011-11-09
Security Group: production
Block Devices:
    /dev/sda1
    /dev/sdj
    /dev/sdk
3 голосов
/ 13 июля 2011

Какие конкретные части вы хотели бы видеть или просматривать?

 ec2-describe-instances | grep INSTANCE | awk {'print $4'}

Это даст вам имя экземпляра, которое в вашем примере будет ec2-xx-xx-xx-xx.compute-1.amazonaws.com.

Редактировать

Поскольку человек, задающий вопрос, сказал, что он хочет его в чистом формате ... без указания, что это такое ... вот моя слабая попытка:

 #!/bin/bash

 tmpFile="/tmp/ec2.info"
 ec2Info=`ec2-describe-instances > $tmpFile`
 instances=`cat $tmpFile | grep TAG | awk {'print $3'}`
 numOfInstances=`cat $tmpFile | grep INSTANCE | wc -l`
 you=`whoami`


 echo "Dear $you, I wanted to describe for you the current number of instances you have: $numOfInstances"
 echo "The instances you have, by hostname, are as follows ..."
 for instance in $instances
 do
      hostname=`cat $tmpFile | grep INSTANCE | grep $instance | awk {' print $4 '}`
      echo "$hostname"
 done

небольшой отказ от ответственности приведенный выше код может быть не идеальным ... он дает человеку, задающему вопрос, правильную информацию, чтобы составить "чистый формат", как он считает нужным.

...