#!/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實例。