#!/bin/bash
. /etc/profile
declare -A dic
echo $(/usr/bin/aws ec2 describe-instances) >/tmp/instances.txt
list=`cat /tmp/instances.txt|jq '.Reservations|length'`
dic=()
for i in $(seq 0 $(expr $list - 1))
do
ip=$(cat /tmp/instances.txt|jq .Reservations[$i].Instances[]|jq .PrivateIpAddress)
instances_id=$(cat /tmp/instances.txt|jq .Reservations[$i].Instances[]|jq .InstanceId)
ip=${ip//\"/} ####替换json中的“”符号####
instances_id=${instances_id//\"/}
echo $instances_id
#dic[$ip]=$instances_id
dic+=([$ip]=$instances_id)
done
/usr/bin/aws ec2 start-instances --instance-ids ${dic[$1]}
#echo -e "$1 is down?" >>/home/admin/sbin/aws_auto_start/iplog.log
echo -e "$1 is down?" >>/tmp/iplog.log
目的:通过aws命令,自动匹配到ip与实例ID,因为在命令行中重启aws实例的话是使用的实例ID并不是ip地址,所以这个脚本后就可以只要输入ip就可以启动和停止aws实例。