12月 132012
 

如题,计划将dreamhost中的网站数据(包括数据库和网站文件)备份到amazon S3中。关于这样备份网站的优点,稍后再述。本文重点记录备份的详细方法。

说明:

目前这样的操作在vps和dreamhost上都操作成功。DH(即dreamhost.com,后面将统一简称为DH)支持ssh。当绑定一个域名后默认会开通一个Uers。例如,在DH中绑定ipinba.com,一般默认开通一个ipinba的ftp用户名,然后可以一通过DH的Uers管理将ipinba这个用户升级为SSH账号,这个ssh的操作权限目录一般为“/home/ipinba/”。

具体操作:

首先使用putty登录服务器,然后可以通过通过如下命令查看DH是否支持ruby及其版本号(可以肯定的是DH是支持的,而且ruby也是新版本):

ruby -v

第二步:下载并安装s3sync。(以本站为例,下载和解压缩s3sync的目录应该为/home/ipinba/)

$ wget http://s3.amazonaws.com/ServEdge_pub/s3sync/s3sync.tar.gz
$ tar xvzf s3sync.tar.gz
$ cd s3sync

第三步,s3sync目录下载安装ssl证书,为了数据安全Amazon S3使用SSL证书加密传输数据。

$ mkdir certs
$ cd certs
$ wget http://mirbsd.mirsolutions.de/cvs.cgi/~checkout~/src/etc/ssl.certs.shar
$ sh ssl.certs.shar
$ cd ..

至此,s3sync安装成功。接下来要创建备份和上传脚本。

创建备份脚本:

在/home/ipinba/s3sync/目录下创建一个 backup.sh脚本。首先创建backup.sh并设置权限,如下:

$ cd /home/ipinba/s3sync/(根据你的实际情况进入相应的目录)
$ touch backup.sh
$ chmod +x backup.sh

然后添加并编辑backup.sh的内容,如下:

$ vim backup.sh

此命令打开后,按“i”切换到编辑插入模式,在backup.sh中添加如下内容:

cd /home/ipinba/db
#先用“mkdir 在/home/ipinba/中创建一个名为‘db’的文件夹用于存放备份文件”。以上目录根据实际情况填写。

mysqldump -h (数据库地址) -u(数据库用户名) -p(数据库用户名密码) (数据库名称)| gzip > $(date +%Y%m%d).sql.gz
#数据库地址:一般为localhost或者127.0.0.1,但是在DH中可能是这样的形式“mysql.ipinba.com”;
#“-u”与“(数据库用户名)”、“-p”“(数据库用户密码)”之间不要有空格。

rm -f $(date +%Y%m%d –date=’10 days ago’).sql.gz
#此句为删除10天前的备份记录。

tar zPcf /home/ipinba/db/web_$(date +%Y%m%d).tar.gz /home/ipinba/ipinba.com/
#此句为备份/home/ipinba/ipinba.com/下的所有网站文件到/home/ipinba/db/目录下并命名为”web_年月日.tar.gz”文件。

编辑好后按ESC,再按“:wq”保存退出。

现在运行backup.sh测试备份是否成功,如下

$ sh backup.sh

查看/home/ipinba/db/目录下是否生成2个文件一个是数据库备份文件为“年月日.sql.gz”,另一个为“web_年月日.tar.gz”。

创建上传到Amazon S3上的运行脚本。

首先,还是在s3sync目录下,创建upload.sh并设置权限,如下:

$ cd /home/ipinba/s3sync/
$ touch upload.sh
$ chmod +x upload.sh

然后添加并编辑upload.sh的内容,如下:

$ vim upload.sh

此命令打开后,按“i”切换到编辑插入模式,在backup.sh中添加如下内容:

cd /home/ipinba/s3sync
export AWS_CALLING_FORMAT=SUBDOMAIN
export AWS_ACCESS_KEY_ID=(你的AWS_ACCESS_KEY_ID)
export AWS_SECRET_ACCESS_KEY=(你的AWS_SECRET_ACCESS_KEY)
export SSL_CERT_DIR=/home/ipinba/s3sync/certs
ruby s3sync.rb -r –ssl /home/ipinba/db/ 你的S3 Bucket:文件夹

编辑好后按ESC,再按“:wq”保存退出。

现在运行upload.sh测试.

$ sh backup.sh

登录你的Amazon S3查看是否上传成功。

Source:爱拼吧blogger 2011-12-26

 回复

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>