Pages

Sunday, 20 May 2012

使用Google Docs备份服务器

这篇文章将介绍如何使用Google Docs来备份服务器,对于CentOS之类的服务器系统有更多的帮助。

免责声明:该文是以知识传播为目的,所以提到的内容并非以可靠性和可恢复性为原则,亦未包含对所述方法可行性的保证;如果你的数据足够重要的话,请不要采用这种方式作为唯一的备份/灾难恢复方法。

1、升级Google Docs的存储空间:
(免费的Google Docs目前只提供1g的空间,对于服务器备份来说太小了;如果你是中国大陆用户,请注意付费方案目前不对大陆开放)
首先登录你的Google帐户,打开https://www.google.com/accounts/PurchaseStorage,选择你的方案后点击购买链接。如果你尚未启用Checkout,会要求你提供信用卡等必要信息以完成支付。一般几分钟后就可以看到升级后的空间数了。
根据网络搜索的结果,大陆用户可以选择HONG KONG,OUTLYING ISLANDS以完成这一过程,信用卡,电话,地址等信息如实填写即可。

2、数据打包压缩及分割:
(Google Docs支持单个文件最大1g,所以需要把数据分卷打包成小于1g的文件)
以 CentOS为例,可以使用诸如“tar cvzpf - public_html/ | split -d -b 900m”之类的命令来分卷压缩,对于已经存在的备份,可以使用“split 备份文件 -d -b 900m”之类。数据库也请利用各自的工具导出到文件,太大的话也要使用split完成分卷。

3、上传备份文件至Google Docs:
(Google提供了对应的API,但是并未提供官方工具,并且上传任意文件功能只对 Google Apps Premier domains开放)
如果你使用Windows或者其他有GUI界面的系统,可能有一些第三方工具可以实现这一功能。
如果你使用类似于CentOS之类,请使用 Google Docs command line tool - version 0.1 来完成这一过程(需要安装Python)。

4、从备份中恢复:
如果你使用Windows或者其他有GUI界面的系统,可能有一些第三方工具可以实现这一功能。
对 于CentOS之类的系统,如果不考虑安全性等问题,可以把备份文件设置成公开然后获取到下载链接,然后wget到服务器端。第三步中使用的 Google Docs command line tool - version 0.1 提供了一种通过官方API来完成这一过程的实现,需要注意的是,下载文件以及查看文件列表需要gdata-python-client(Google Data APIs Python Client Library)的支持,而上传文件并不需要。
完成这一过程后,请使用“cat x* > bak.tar.gz”之类的工具合并备份文件,然后执行对应的恢复过程。

附:
A、gdata-python-client(Google Data APIs Python Client Library)官方地址:http://code.google.com/p/gdata-python-client/
B、Google Docs command line tool - version 0.4简单使用方法:
python 文件名.py
输入用户名,如果非@gmail.com请完整填写邮件地址,然后按回车键
输入密码,然后按回车键
屏幕显示Google Docs>的提示后:输入对应指令然后按回车键以执行。主要功能为:
q或者Q:退出;
文件名或者put 文件名:上传文件至登录用户Google Docs的根目录下;
mput 文件,文件,……:批量上传文件,可以使用*、?通配符;
get 文件名:下载文件至本地当前目录,可以使用*、?通配符;
mget 文件,文件,……:批量下载文件,可以使用*、?通配符;
ls或者dir:显示所有文件以及所在目录;
?或者h或者help或者man:显示帮助信息。
注意:虽然该工具内置了部分中文支持,但是CentOS之类的系统上很可能把中文显示为乱码,所以为了避免可能出现的问题,应尽量使用英文命名文件及目录。
该工具经测试在python 2.5.2(ubuntu)及2.6.5(CentOS)环境中工作正常,上传部分的创意及代码源自http://sa3.org/program/google-docs-upload/,下载文件以及查看文件列表需要gdata-python-client(Google Data APIs Python Client Library)的支持。