• Linux- AWS之EC2大数据集群定时开关机


      众所周知,云计算就是在计算你的钱,每当ec2开起来就要开始计费。当用户购买了一个庞大的与服务器做一个集群,尤其是用来做大数据集群,这些服务器的配置相当高,每台服务器所需要的费用不菲。其实在很多时候没能够完全利用起其全部的资源,尤其在空闲时间,在夜间没有作业的情况下,这些服务器完全处于空闲的状态,却时刻在计费,这是相当不划算的。于是有这样一个方案,我们是不是可以在机器处于空闲的状态时将他们关闭,第二天上班前将他们开起来,下班后不需要使用时又将它们关机。

      在写好脚本运行之前,最好检查一遍开机自启动列表,看看你的业务服务是否又设置了开机自启动,如果没有的话你需要考虑是将它开启还是在脚本上设置每次开机后都开启服务了。相关命令:chkconfig

     Python script

    开机脚本

    # coding=utf8
    import boto3
    ec2 = boto3.resource('ec2')
    ids = ['i-00000000000000000','i-00000000000000001', 'i-00000000000000002', 'i-00000000000000003','i-00000000000000004','i-00000000000000005','i-00000000000000006']
    ec2.instances.filter(InstanceIds=ids).start()
    

     关机脚本

     # coding=utf8
    import boto3
    ec2 = boto3.resource('ec2')
    ids = ['i-00000000000000000','i-00000000000000001', 'i-00000000000000002', 'i-00000000000000003','i-00000000000000004','i-00000000000000005','i-00000000000000006']
    ec2.instances.filter(InstanceIds=ids).stop()
    

     Shell script

    开机脚本

    #!/bin/bash
    export PATH=/usr/local/python34/bin/:$PATH
    export PATH=~/.local/bin:$PATH
    echo test-ec2sh >> /user/teststartec2.txt
    python3 /user/pyfile/startec2.py
    

     关机脚本

    #!/bin/bash
    export PATH=/usr/local/python34/bin/:$PATH
    export PATH=~/.local/bin:$PATH
    python3 /user/pyfile/stopec2.py
    

     关机脚本并且打印日志

    #!/bin/bash
    TMP_A=/tmp/awsstop.check
    TMP_B=/user/shfile/checkfile/awsstop.standerd
    TMP_C=/tmp/awsstop.log
    rm -rf TMP_A
    sleep 600
    for (( i=1;i<=30;i++ ))
    do
    DIFF=$(diff $TMP_A $TMP_B)
    if [[ -z $DIFF ]];
     then
       echo "Can stop aws"
       echo "Can stop aws" > $TMP_C
       date >> $TMP_C
      /user/shfile/stopec2.sh
    else
       echo "Can not stop aws waiting 30 minute..."
       echo "Can not stop aws" > $TMP_C
       date >> $TMP_C
       sleep 1800
    fi
    done
    

     crontab 定时执行请参考我的另一篇博文:Linux- Linux自带定时调度Crontab使用详解

    Linux- Linux自带定时调度Crontab使用详解
    Linux - Linux自带定时调度Crontab使用详解
  • 相关阅读:
    BZOJ 5018 [Snoi2017]英雄联盟
    BZOJ 4945 [Noi2017]游戏
    BZOJ4942 [Noi2017]整数
    BZOJ 2427 [HAOI2010]软件安装
    BZOJ 4870 [Shoi2017]组合数问题
    THINKPHP 全局404
    PHP 万能查询代码
    xml Array 相互转化
    JS 倒计时计算
    PHP 多态
  • 原文地址:https://www.cnblogs.com/RzCong/p/8356143.html
Copyright © 2020-2023  润新知