3

自动化(每日)我的 EBS 卷快照的最佳方法是什么 (2) 并管理它们。

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

我相信这样的脚本确实存在于某个地方,但我似乎无法确定一个。

4

4 回答 4

3

我在http://awsmissingtools.com使用了一个类似的开源工具- 运行时的“ec2-automate-backup”工具如下“ec2-automate-backup -s tag -t Backup-true -k 14 - p" 将使用标签 Backup=true 备份所有 EBS 卷,并将这些快照设置为在 -k 天后删除 - 您可以使用 -k 14 将快照保留 14 天,或使用 -k 365 将快照保留一整年.

于 2012-10-08T00:41:03.097 回答
1

我敢肯定这种脚本还有其他实现,但这是我的:

http://www.capsunlock.net/2009/10/deleting-old-ebs-snapshots.html

于 2010-12-15T14:56:26.237 回答
0

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

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

  1. 打开与服务器的 SSH 连接。
  2. 导航到文件夹

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

    $ git clone https://gist.github.com/9738785.git ec2
    
  4. 去那个文件夹

    $ cd ec2
    
  5. 使backup.php可执行

    $ chmod +x backup.php
    
  6. AWS PHP SDK github 项目的开放版本aws.zip和按钮的复制 URL。现在将其下载到您的服务器中。

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

    $ unzip aws.zip -d aws 
    
  8. 编辑backup.phpphp 文件并在行中设置所有设置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";
    
  9. 测试一下。运行此脚本

    $ ./backup.php
    

    测试是快照已创建。

  10. 如果一切正常,只需添加 cronjob。

    * 23 * * * /usr/local/ec2/backup.php
    
于 2014-03-26T16:01:19.137 回答
0

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

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

我创建了一个小型 Perl 程序,https://github.com/sciclon/EBS_Snapshots

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

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

  • 您可以定义日志文件

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

  • 您可以为每个卷定义其中的频率

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

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

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

    • 您可以定义“后记”执行以在拍摄快照后执行任何脚本(例如一封告诉您有关它的电子邮件)

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

    当脚本以守护程序模式运行时,您可以“即时”重新配置脚本,脚本接受信号和 IPC。

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

于 2014-04-22T13:42:53.857 回答