众所周知,云计算就是在计算你的钱,每当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使用详解
轻灵划译
数据来源:

Linux- AWS之EC2大数据集群定时开关机的更多相关文章

  1. 大数据集群Linux CentOS 7.6 系统调优篇

    大数据集群Linux CentOS 7.6 系统调优篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.设置主机hosts文件 1>.修改主机名 [root@node100 ...

  2. centos7 ambari2.6.1.5+hdp2.6.4.0 大数据集群安装部署

    前言 本文是讲如何在centos7(64位) 安装ambari+hdp,如果在装有原生hadoop等集群的机器上安装,需要先将集群服务停掉,然后将不需要的环境变量注释掉即可,如果不注释掉,后面虽然可以 ...

  3. 全网最详细的大数据集群环境下多个不同版本的Cloudera Hue之间的界面对比(图文详解)

    不多说,直接上干货! 为什么要写这么一篇博文呢? 是因为啊,对于Hue不同版本之间,其实,差异还是相对来说有点大的,具体,大家在使用的时候亲身体会就知道了,比如一些提示和界面. 安装Hue后的一些功能 ...

  4. 全网最详细的大数据集群环境下如何正确安装并配置多个不同版本的Cloudera Hue(图文详解)

    不多说,直接上干货! 为什么要写这么一篇博文呢? 是因为啊,对于Hue不同版本之间,其实,差异还是相对来说有点大的,具体,大家在使用的时候亲身体会就知道了,比如一些提示和界面. 全网最详细的大数据集群 ...

  5. CDH版本大数据集群下搭建Hue(hadoop-2.6.0-cdh5.5.4.gz + hue-3.9.0-cdh5.5.4.tar.gz)(博主推荐)

    不多说,直接上干货! 我的集群机器情况是 bigdatamaster(192.168.80.10).bigdataslave1(192.168.80.11)和bigdataslave2(192.168 ...

  6. Ubuntu14.04下Ambari安装搭建部署大数据集群(图文分五大步详解)(博主强烈推荐)

    不多说,直接上干货! 写在前面的话 (1) 最近一段时间,因担任我团队实验室的大数据环境集群真实物理机器工作,至此,本人秉持负责.认真和细心的态度,先分别在虚拟机上模拟搭建ambari(基于CentO ...

  7. 关于在真实物理机器上用cloudermanger或ambari搭建大数据集群注意事项总结、经验和感悟心得(图文详解)

    写在前面的话 (1) 最近一段时间,因担任我团队实验室的大数据环境集群真实物理机器工作,至此,本人秉持负责.认真和细心的态度,先分别在虚拟机上模拟搭建ambari(基于CentOS6.5版本)和clo ...

  8. 基于Docker搭建大数据集群(一)Docker环境部署

    本篇文章是基于Docker搭建大数据集群系列的开篇之作 主要内容 docker搭建 docker部署CentOS 容器免密钥通信 容器保存成镜像 docker镜像发布 环境 Linux 7.6 一.D ...

  9. 使用ansible部署CDH 5.15.1大数据集群

    使用ansible离线部署CDH 5.15.1大数据集群 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在此之前,我之前分享过使用shell自定义脚本部署大数据集群,不管是部署CD ...

随机推荐

  1. YUV Player

    https://github.com/Yonsm/RawPlayer RawPlayer https://github.com/latelee/YUVPlayer YUVPlayer https:// ...

  2. 自定义Spring Shell

    目录 概述 自定义内置命令 禁用内置命令 覆盖内置命令 自定义命令提示符 自定义命令行选项行为 自定义参数转换器 概述 官网:https://projects.spring.io/spring-she ...

  3. graph小案例

    (小案例,有五个人他们参见相亲节目,这个五个人分别是0,1,2,3,4,号选手,计算出追随者年龄大于被追随者年龄的人数和平均年龄) scala> import org.apache.spark. ...

  4. cp 命令 简要

    1.cp   1.log   hanDir   将1.log复制到hanDir目录中 2.cp   1.log  -i   hanDir   复制前询问是否覆盖重名文件 3.cp  -a    han ...

  5. Python环境搭建及IDE选择(转载)

    Python环境搭建及IDE选择 人工智能社区 http://studyai.com 系统:Windows 7 版本:Python 2.7 一.安装Python 在开始编程之前,我们首先需要搭建Pyt ...

  6. elk文件

    =================正则匹配 [root@web02 conf.d]# cat apache-grok.conf input{ file { path => "/var/ ...

  7. readonly const关键字

    readonly 关键字与 const 关键字不同. const 字段只能在该字段的声明中初始化. readonly 字段可以在声明或构造函数中初始化. 因此,根据所使用的构造函数,readonly  ...

  8. thinkPHP5.0的学习研究【基础】

    2017年6月19日13:25:56 基础:1.ThinkPHP5的环境要求如下: PHP >= 5.4.0        PDO PHP Extension        MBstring P ...

  9. element-ui table 点击分页table滚动到顶部

    在做项目中,碰到一个问题,table加了固定头,内容可滚动,当滚到table底边时,点击分页后还在底边 解决方法:设置table的 ref='multipleTable' //切换分页的方法加上下面这 ...

  10. nginx学习之压缩解压篇(七)

    1.简介 压缩响应可以减少传输数据的大小,节省带宽.但过多的压缩会造成很大的处理开销.在发送给客户端之前,nginx会对响应做压缩,但是如果后端服务器已经 压缩过了,nginx就不再压缩. 2.开启压 ...