对ec2-describe-images或ec2-describe-instances的输出进行分类

时间:2012-01-15 02:33:59

标签: scripting data-processing

是否有任何命令/工具/脚本可以对ec2-describe-imagesec2-describe-instances的庞大输出进行分类。

我有一个包含每个细节的大约100台服务器的列表。我想在适当的标题下对它们进行分类,例如 - RESERVATIONINSTANCEBLOCKDEVICETAG(输出中可用的任何类别)。

3 个答案:

答案 0 :(得分:1)

你有这个排序吗?如果不是......

使用选项 - 标题运行ec2-describe-images,为您提供类别

ec2-describe-images --private-key ~/private.key --cert ~/my.crt --region us-west-1 --headers

如果你只是想要某些字段,那么只需通过linux命令 cut 选择你所追求的字段(列)来输出上面的输出。假设您想要ImageID,Name和Architecture,那么这些将是上面输出的字段2,3和8。实施例。

 ec2-describe-images --private-key ~/private.key --cert ~/my.crt --region us-west-1 --headers | cut -f2,3,8 -s

为ec2-describe-instances做同样的事情也是类似的。

答案 1 :(得分:0)

这是awk(或perlpython或其他通用脚本语言的工作。

awk可以处理具有各种记录/字段长度的记录,可以创建关联数组,它是一种报告语言,通常安装在每个* nix上。

答案 2 :(得分:0)

将此添加到〜/ .bashrc或〜/ .bash_profile:

ez-ec2-describe-instances() {
    ec2-describe-instances $* --headers | egrep '(ReservationID|running|pending)'|cut -f 2,3,4,6,7,10,12; 
}

退出/登录或运行“.~ / .bashrc”。然后你可以使用:

$ ez-ec2-describe-instances 
ReservationID   Owner   Groups
i-6f194113  ami-1624987f    ec2-107-20-75-13.compute-1.amazonaws.com    running t1.micro    us-east-1a

您可以将参数传递给ez-ec2-describe-instances,就像将它们传递给常规的ec2-describe-instances一样。 E.g:

$ ez-ec2-describe-instances --region eu-west-1
ReservationID   Owner   Groups
i-e4fd6eaf  ami-c37474b7    ec2-54-246-38-35.eu-west-1.compute.amazonaws.com    pending t1.micro    eu-west-1a