在防止个人和工作文件丢失或受损方面,已安装的数据备份系统是远远不够的。理想情况下,数据应该安全可靠地存储一个或多个远离您家或办公室的地方。所以,即使已经在优盘里备份了(过时的)文档,并在Google Drive同步备份了一部分,再增加一种备份方式也没有什么损害。

这种存储方式还有一些问题。比如有些人会抱怨“设置太复杂”,有些人说,“之前试过,但我有时会忘记定期实际更新。”

你有Amazon AWS帐号?使用操作系统的命令行很顺手?那么,我来介绍一个非常简单、十分便宜、万分可靠的DIY数据备份计划,只需设置一次,没有后续环节。(虽然你需要时不时地检查核对)。它的价格也很便宜。每月每GB仅0.03美元。

下载安装S3cmd

首先,需要将S3cmd安装到系统上。此过程通过了Linux上的彻底测试(不会造成任何伤害),在Mac上也是同样。所以我相信,对于Windows,AWS CLI也同样兼容。

首先,安装Python和wget:

sudo apt-get install python python-setuptools wget
然后,用wget下载S3cmd 包(1.5.2 是目前最新版本):

wget http://sourceforge.net/projects/s3tools/files/s3cmd/1.5.2/s3cmd-1.5.2.tar.gz
运行tar,解压文档:
tar xzvf s3cmd-1.5.2.tar.gz
进入最新创建的S3cmd目录:
cd s3cmd-1.5.2
并运行安装程序:

sudo python setup.py install
现在可以配置S3cmd了:
s3cmd --configure
当您访问S3时需要填写AWS账号接入ID和密钥,以及一些其他认证、加密和账户信息。配置程序进行S3连接测试后会保存您的设置,然后,所有的准备工作就都完成了。

创建数据备份:

由于没有数据的数据备份没有什么意义,您需要确定到底哪些文件夹和文件需要备份。您还需要从AWS控制台创建一个新的bucket:

现在,假设您把所有重要数据都存在workfiles目录下,并且bucket命名为mybackupbucket8387。备份命令就会是下面的样子:

s3cmd sync /home/yourname/workfiles/ s3://mybackupbucket8387/ --delete-removed
顺便说一句,源地址和目标地址最后的斜杠也都是很重要的。
让我们检查下面的命令:

Sync通知工具同步保存文件到源位置和目标位置。这意味着,该更新将首先检查两个目录的内容,添加存在于一个目录中任何文件的副本,而不是另一个。两个地址简单地界定了哪两个数据位置将被同步,–delete-removed命令工具删除S3 bucket上的所有文件,不再存储在本地。

根据数据备份的大小,第一次运行可能需要一些时间。

有些时候,您可能不想使用–delete-removed,也许您更想保留覆盖文件的旧版本存档。这时,只需要从命令行删除–delete-removed参数,并在S3 bucket启用版本就可以了。

如果想进一步降低成本,同时还需要嵌入对存档已久的覆盖文件的自动删除命令,可以使用AWS控制台为bucket创建一个Lifecycle规则,将旧版本或文件——比如说大于三十天——传输到Glacier ,Glacier的存储成本仅为每月每GB0.01美元。

所以说这是一个简单便宜的数据备份。但它尚未在“设置后就可以完全忘掉”的阶段,还是有一个十分简单的步骤(至少在Ubuntu系统中是这样):创建一个cron作业。

如果想每小时同步一次文件,可以创建只包含以下两行的文本文件:

#!/bin/bash
s3cmd sync /home/yourname/workfiles/ s3://mybackupbucket8387/
然后使用sudo, 把文件保存在 directory /etc/cron.hourly/ 目录下。

假设文件命名为 “mybackup”, 以下命令可使文件运行:

sudo chmod +x mybackup

转自:https://www.csdn.net/article/2015-05-25/2824767
原文地址:http://cloudacademy.com/blog/data-backup-s3cmd/