Amazon ec2 用于自动创建和管理EC2 EBS快照的脚本

Amazon ec2 用于自动创建和管理EC2 EBS快照的脚本,amazon-ec2,amazon-web-services,cloud,amazon-ebs,Amazon Ec2,Amazon Web Services,Cloud,Amazon Ebs,自动化(每日)EBS卷快照(2)并对其进行管理的最佳方法是什么 所谓“管理”,我的意思是,我正在寻找一个脚本,该脚本不仅可以创建每日备份(我猜将涉及cron作业),而且还可以删除早于x天的快照,以避免过度使用数据 我相信这样的剧本确实存在,但我似乎无法确定 Ty我确信这种脚本还有其他实现,但我的实现如下: 我在“ec2自动备份”工具中使用了类似的开源工具,运行时如下“ec2自动备份-s tag-t backup true-k 14-p”将备份标记为backup=true的所有EBS卷,并将这些快

自动化(每日)EBS卷快照(2)并对其进行管理的最佳方法是什么

所谓“管理”,我的意思是,我正在寻找一个脚本,该脚本不仅可以创建每日备份(我猜将涉及cron作业),而且还可以删除早于x天的快照,以避免过度使用数据

我相信这样的剧本确实存在,但我似乎无法确定


Ty

我确信这种脚本还有其他实现,但我的实现如下:


我在“ec2自动备份”工具中使用了类似的开源工具,运行时如下“ec2自动备份-s tag-t backup true-k 14-p”将备份标记为backup=true的所有EBS卷,并将这些快照设置为在-k天后删除-您可以使用-k 14将快照保留14天,或使用-k 365将快照保留一整年。

我遇到了相同的问题。因此,我创建了一个特殊的脚本。如果您的服务器上安装了PHP,那么您可以这样做

此脚本不仅将按您设置的时间间隔创建备份,还将删除指示的较旧快照

  • 打开到服务器的SSH连接
  • 导航到文件夹

    $ cd /usr/local/
    
  • 将此要点克隆到
    ec2
    文件夹中

    $ git clone https://gist.github.com/9738785.git ec2
    
  • 转到那个文件夹

    $ cd ec2
    
  • 使
    backup.php
    可执行

    $ chmod +x backup.php
    
  • 打开AWS PHP SDK github项目并复制
    AWS.zip
    按钮的URL。现在将其下载到您的服务器中

    $ wget https://github.com/aws/aws-sdk-php/releases/download/2.6.0/aws.zip
    
  • 将此文件解压缩到
    aws
    目录中

    $ unzip aws.zip -d aws 
    
  • 编辑
    backup.php
    php文件并在
    5-12行中设置所有设置

    $dryrun     = FALSE;
    $interval   = '24 hours';
    $keep_for   = '10 Days';
    $volumes    = array('vol-********');
    $api_key    = '*********************';
    $api_secret = '****************************************';
    $ec2_region = 'us-east-1';
    $snap_descr = "Daily backup";
    
  • 测试一下。运行此脚本

    $ ./backup.php
    
    测试是创建了快照

  • 如果一切正常,只需添加cronjob

    * 23 * * * /usr/local/ec2/backup.php
    

  • 我遇到许多人在寻找管理EBS快照的工具。我在互联网上找到了一些工具,但它们只是脚本和不完整的解决方案。最后,我决定创建一个更灵活、更集中、更易于管理的程序

    其想法是有一个集中的程序来管理所有EBS快照(实例本地或远程)

    我创建了一个小的Perl程序

    一些特点: *程序以守护程序模式或脚本模式(crontab)运行

    • 您只能选择本地附加卷或远程卷

    • 您可以定义日志文件

    • 您可以为每个卷定义快照的数量

    • 您可以为每个卷定义它们之间的频率

    • 当达到删除最旧快照的限制时,频率和数量将像“循环”一样工作

    • 您可以在一个步骤中重新调整数量,我的意思是,如果您有6个快照,并且您在3个步骤中修改了数量,那么过程将自动重新调整

    • 您可以定义“规定”执行,您可以在执行快照之前添加要执行的代码,例如,您希望尝试卸载卷或停止某些服务,或者检查实例负载。父进程将等待退出代码,“0”表示成功,您可以根据退出代码定义是否继续

      • 您可以定义“postscript”执行,以在拍摄快照后执行任何scrip(例如,一封告诉您该快照的电子邮件)

      • 您可以添加“受保护的快照”以跳过您定义的快照,我的意思是它们将处于“只读”状态,并且永远不会被擦除

      当脚本在守护进程模式下运行时,您可以“动态”重新配置脚本,该脚本接受信号和IPC

      它有一个“本地缓存”,以避免多次请求API。您可以在配置文件中添加或修改任何配置,并在不终止进程的情况下重新加载