温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何使用Shell脚本实现EC2 预留实例RI到期提醒

发布时间:2021-11-08 10:11:57 来源:亿速云 阅读:255 作者:小新 栏目:云计算

小编给大家分享一下如何使用Shell脚本实现EC2 预留实例RI到期提醒,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

一、场景描述

作为一个云运维工程师,要管理的机器少则几百台,多则上千上万台。对于企业客户而言,采购AWS EC2均会使用ALL Upfront(预付全部的方式,一年可以节约成本50%~70%之间),因此需要我们在客户购买的预留实例(Reserve Instance)到期之前,可以提醒到客户,避免因为按照On demand(按需运行)带来的巨大花费。

二、脚本依赖条件

执行这个脚本的前提:

1.  配置AWS CLI环境。

2.  配置管理的所有AWS账户的密钥文件

     示例:使用aws configure --profile test-acccount (红色的字体代表账户名称,用来标识不同的账户)

三、脚本的功能

这是脚本的第一个版本,比较简单,主要分为几个步骤:

1.  轮询获取每个客户的AWS账户EC2预留实例的过期时间

2.  计算过期时间和当前时间的时间

3.  如果时间差小于15天,发送告警邮件到指定的邮箱。

四、脚本内容

#!/bin/bash

#Author:Andy Wei

#Version:1.0

#Function: Reserve Instance retired Alert

####客户列表

customer_list=("test-account" "myacccount" )

for customer in ${customer_list[@]}

do

    #####获取所有实例的RI到期信息

    ri_teach_time_list=`aws ec2 describe-reserved-instances --profile $customer --query 'ReservedInstances[*].[End,State]' --output t

ext|grep active | awk -F"T" '{print $1}'`#    echo $customer   

    ###获取当前时间信息

    cur_date=`date  "+%Y-%m-%d"`

    ####计算到期时间和当前时间相差天数

    for time in $ri_teach_time_list

    do

        ####计算到期时间和当前时间相差天数

        time_difference=$(($(date +%s -d "$time") - $(date +%s -d "$cur_date")))

        difference_day=$(($time_difference/24/60/60))

        ###RI到期时间和当前时间对比,小于15天发送邮件

        if [ $difference_day -le 15 ];then

           echo "The $customer account $time will have EC2 RI retired."|mail -s "The $customer RI retired Notication"  你的邮箱

      fi

    done

done

看完了这篇文章,相信你对“如何使用Shell脚本实现EC2 预留实例RI到期提醒”有了一定的了解,如果想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI