sh 构筑后に降价形式でEC2のリソース情报を吐き出すスクリプト

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sh 构筑后に降价形式でEC2のリソース情报を吐き出すスクリプト相关的知识,希望对你有一定的参考价值。

#!/bin/bash

## Profile名の取得
if [[ -z "$1" ]]; then
  echo "Profile名を指定してください"
  exit 1
fi
profile=$1
BASE_OPTS="--output text --profile ${profile}"

## インスタンスIDの取得
InstanceIds=$(aws ec2 describe-instances --query "Reservations[].Instances[].InstanceId" ${BASE_OPTS})
if [[ -z "${InstanceIds}" ]]; then
  echo "インスタンスIDが取得出来ませんでした"
  exit 1
fi

rows="|Tag名|用途|インスタンスID|グローバルIPアドレス|ブライベートIPアドレス|インスタンスタイプ|ディスクサイズ|OS|AMIバックアップ|備考|"
rows="${rows}""\n""| ------------- | ------------- |"
for InstanceId in ${InstanceIds}
do
  ## パブリックIPの取得
  PublicIP=$(aws ec2 describe-instances --instance-ids "${InstanceId}" --query "Reservations[].Instances[].PublicIpAddress" ${BASE_OPTS})

  ## プライベートIPの取得
  PrivateIP=$(aws ec2 describe-instances --instance-ids "${InstanceId}" --query "Reservations[].Instances[].PrivateIpAddress" ${BASE_OPTS})

  ## インスタンスタイプの取得
  InstanceType=$(aws ec2 describe-instances --instance-ids "${InstanceId}" --query "Reservations[].Instances[].InstanceType" ${BASE_OPTS})

  ## Nameタグの取得
  NameTag=$(aws ec2 describe-instances --instance-ids "${InstanceId}" --query "Reservations[].Instances[].Tags[?Key==\`Name\`]" ${BASE_OPTS})

  ## EBSのサイズの取得
  DiskSize=$(aws ec2 describe-volumes --filters "Name=attachment.instance-id,Values=${InstanceId}" --query "Volumes[].Size" ${BASE_OPTS})

  row="| ${NameTag} | | ${InstanceId} | ${PublicIP} | ${PrivateIP} | ${InstanceType} | ${DiskSize}GB | | | |"
  rows="${rows}""\n""${row}"
done

echo -e ${rows}

以上是关于sh 构筑后に降价形式でEC2のリソース情报を吐き出すスクリプト的主要内容,如果未能解决你的问题,请参考以下文章

sh nasneから取得したxmlを快乐的映射器でパース

markdown 红宝石葡萄でネストしたリソースのAPI

html 降价形式でと标题URLを表示するブックマークレット

ruby Code Schoolのユーザ情报をリクエストしてJSON形式で取得

text node.js中で简易サーバを构筑

sh 苹果のクリーンインストール后に実行するシェル