利用AWS boto实现EC2 存储卷的自动快照

boto是AWS的Python SDK,可以利用boto自动生成ec2的存储卷快照,实现ec2数据的备份

1.安装boot

pip install boto ,如果没有安装pip,需要提前安装

2.配置boto配置文件

~/.aws/credentials  #设置aws认证凭据

  [default]
 aws_access_key_id = AAAAAAAAAAAAAAA
 aws_secret_access_key = TNAAAAXXXXXXXXXXXXXXXXXXXXXX

~/.aws/config #设置默认区域

 [default]
 region = us-east-1

3.编辑脚本

#Date:
#Author: 
#Usage: python snap.py volume_id number_of_snapshots_to_keep
import boto
import sys
import pdb
from datetime import datetime
conn = boto.connect_ec2()
conn_us = conn
if len(sys.argv) < 2:
        print "Usage: snap.py vol-id days-to-keep"
        exit()
vol_id = sys.argv[1]
keep = int(sys.argv[2])
volumes = conn_us.get_all_volumes([vol_id])
volume = volumes[0]
description = ‘hostname‘ + ‘-‘ + datetime.today().isoformat(‘ ‘)#镜像描述
volume.create_snapshot(description)
snapshots = volume.snapshots()
def date_compare(snap1, snap2):
    if snap1.start_time < snap2.start_time:
        return -1
    elif snap1.start_time == snap2.start_time:
        return 0
    return 1
snapshots.sort(date_compare)
delta = len(snapshots) - keep
for i in range(delta):
    print ‘Deleting snapshot ‘ + snapshots[i].description
    try:
        snapshots[i].delete()
    except Exception, e:
        pass

4.加入crontab

volum-id可以在控制台中找到

#每天凌晨自动生成磁盘快照

00 00 * * * python /opt/scripts/snap.py vol-00c69ee40b3ad1bf4 10 #Disk snap

时间: 2024-10-17 16:11:20

利用AWS boto实现EC2 存储卷的自动快照的相关文章

给aws ec2 所有ebs做自动快照

使用awscli来进行对ec2实例轮询,查询到每个ec2的ebs卷,并获取到每个ec2的tag,将标签的tag打给做的快照. awscli如何配置这里就不再说明.直接上干货 代码如下: #!/bin/bash #create ec2 ebs snapshot per week. PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin #init awscli #yum install -y python-pip #pip

OTC与AWS对比之EC2之一

EC2(Elastic Compute Cloud)作为云计算最基础的服务没有之一,在当前云计算使用中有着至关重要的作用.AWS收入的中的EC2占的比重最大. EC2和S3是AWS最早发布的服务,经过了这么多年的发展,服务种类已经非常多了.有些服务也过期下线了.因为笔者接触云服务时间也不是太长,有些历史就不说了,大家感兴趣可以自己搜索.下面我就对EC2现有的服务进行一个详细分析 实例 具体实例类型大家提供都比较多,下面将AWS和OTC提供的实例类型做一个大概比较供参考 1.通用型 实例类型 vC

Apache Stratos Mock架构及持久化存储卷的映射

Apache Stratos Mock IaaS 简介 Apache Stratos 支持许多基础设施作为服务 (IaaS) 的平台:EC2,OpenStack,vCloud,CloudStack,Docker等.然而,设立IaaS 或购买公共 IaaS 服务对于尝试Stratos来说是额外的开销.此外,设置本地 IaaS 需要大量的硬件资源和购买公有云上的IaaS账户所涉及的成本.这些对尝试Stratos带来了障碍 Stratos. 通过引入Docker/Kubernetes来支持Linux容

存储卷

前言 默认情况下容器的数据都是非持久化的, 在容器消亡以后数据也跟着丢失, 所以 Docker 提供了 Volume 机制以便将数据持久化存储. 类似的, Kubernetes 提供了更强大的 Volume 机制和丰富的插件, 解决了容器数据持久化和容器间共享数据的问题. 与 Docker 不同, Kubernetes Volume 的生命周期与 Pod 绑定容器挂掉后 Kubelet 再次重启容器时, Volume 的数据依然还在而 Pod 删除时, Volume 才会清理. 数据是否丢失取决

Kubernetes之存储卷

存储卷概述 容器磁盘上的文件的生命周期是短暂的,这就使得在容器中运行重要应用时会出现一些问题.首先,当容器崩溃时,kubelet 会重启它,但是容器中的文件将丢失--容器以干净的状态(镜像最初的状态)重新启动.其次,在 Pod 中同时运行多个容器时,这些容器之间通常需要共享文件.Kubernetes 中的 Volume 抽象就很好的解决了这些问题.在原docker环境中也有存储卷的概念,但docker环境的存储卷调度在宿主机上的目录,当docker重新创建的时候存储卷还会挂载统一宿主机上,但我们

Kubernetes之(十二)存储卷

目录 Kubernetes之(十二)存储卷 简介 emptyDir存储卷 hostPath存储卷 nfs共享存储卷 PV和PVC NFS使用PV和PVC 配置NFS存储 定义PV 定义PVC 查看验证 测试访问 StorageClass Kubernetes之(十二)存储卷 简介 为了保证数据的持久性,必须保证数据在外部存储在docker容器中,为了实现数据的持久性存储,在宿主机和容器内做映射,可以保证在容器的生命周期结束,数据依旧可以实现持久性存储.但是在k8s中,由于pod分布在各个不同的节

邮件监控存储卷空间的脚本

邮件监控存储卷空间的脚本: 说明: 1.显示存储名.ip.卷名.total空间.free空间.1天用空间.已用百分比 2.对卷名字符数的统计(echo aa1 | wc -m) 3.对卷名部分的排除,只保留数值部分(/usr/lib64/nagios/plugins/check-netapp-ng2.pl -H 10.0.0.16 -C public -T DISKUSED -v /vol/$eNas/ -w 80 -c 90 | awk -F[:" "]+ '{print $5}'

glusterfs 的存储卷类型

glusterfs是一个流行的分布式文件系统,它的存储卷分为几种 一.分布式卷(Distributed volume) 近似于raid0,文件没有分片,将文件逐个写入各个硬盘上,优点是容量大,缺点是没冗余. 二.条带卷(Striped volume) 相当于raid0,文件是分片均匀写在各个硬盘上的,优点是分布式读写,性能整体较好.缺点是没冗余,分片随机读写可能会导致硬盘IOPS饱和. 三.复制卷(Replicated volume) 相当于raid1,复制的份数,决定集群的大小,通常与分布式卷

理解 QEMU/KVM 和 Ceph(3):存储卷挂接和设备名称

本系列文章会总结 QEMU/KVM 和 Ceph 之间的整合: (1)QEMU-KVM 和 Ceph RBD 的 缓存机制总结 (2)QEMU 的 RBD 块驱动(block driver) (3)存储卷挂接和设备名称 这篇文章分析一下一个 Ceph RBD 卷是如何被映射到一个 QEMU/KVM 客户机的,以及客户机中设备的命名问题. 1. 遇到的设备命名问题 1.1 通过 Nova 和 Cinder 做 Ceph RDB 卷挂接和卸载步骤 挂接一个卷: #运行nova-attach 命令no