Matrix
Everything that Has a Beginning Has an End
Browse: Home / 2010 / 2月 / 如何利用dropbox的console模式备份linux服务器上的资料

如何利用dropbox的console模式备份linux服务器上的资料

By matrix on 2010/02/24

Dropbox是一款非常好用的网盘工具。其支持的客户端非常多样,支持Windows/mac/linux。基本涵盖了主要的操作系统。对大陆用户来说,最方便的一点是:没有被墙(悲哀….)

我们想利用dropbox支持多平台的特点,同步/备份linux服务器上的资料。因为专用的服务器并没有图形界面,所以,我们需要在console模式下运行dropbox。

1,我们安装dropbox:

wget -O dropbox.tar.gz http://www.dropbox.com/download?plat=lnx.x86

如果服务器是64位版本,请使用这个链接

2,解包到相关文件夹

$ tar -zxof dropbox.tar.gz
$ mv .dropbox-dist ~/.dropbox-dist
3,下载console版本需要的Pythone script
$ wget http://dl.dropbox.com/u/6995/dbmakefakelib.py
$ wget http://dl.dropbox.com/u/6995/dbreadconfig.py
4,运行 dbmakefakelib.py,以创建dropbox运行所需要的GUI库文件
$ python dbmakefakelib.py
adding library libgtk-x11-2.0.so.0
adding library libgdk-x11-2.0.so.0
adding library libatk-1.0.so.0
adding library libgdk_pixbuf-2.0.so.0
adding library libpango-1.0.so.0
adding library libgobject-2.0.so.0
adding library libgmodule-2.0.so.0
adding library libgthread-2.0.so.0
adding library libglib-2.0.so.0
adding function gtk_tree_view_new
adding function gtk_toolbar_new
adding function g_threads_got_initialized
adding function gtk_grab_remove
adding function gtk_button_new
adding function gtk_frame_new
adding function gtk_major_version
... lots more of this ...
adding function g_static_rw_lock_writer_unlock
adding function g_value_set_boxed_take_ownership
adding function g_boxed_type_register_static
adding function g_datalist_clear
dropboxd ran for 15 seconds without quitting - success?

如果在这里系统没有反应,也不用担心。

5,现在,我们读取hostid

$ python dbreadconfig.py
host_id = 739bfxxxxxxxxxxxxxxxxx20dbe2b //我mark了一下...呵呵...
last_revision = None
schema_version = 6
如果您和我一样不幸读取失败
$ python dbreadconfig.py
File "dbreadconfig.py", line 24
 print row[0], '=', pickle.loads(base64.b64decode(row[1])) if row[1] !=  None else row[1]
 SyntaxError: invalid syntax
那么,用SQLite直接查询:
$ cd .dropbox
$  sqlite3 dropbox.db
SQLite version 3.3.6
Enter ".help" for instructions
sqlite> .dump config #执行这个命令
BEGIN TRANSACTION;
CREATE TABLE config (
id INTEGER PRIMARY KEY,
key TEXT NOT NULL UNIQUE,
value TEXT
);
INSERT INTO "config" VALUES(1, 'schema_version', 'STYKLg==
');
INSERT INTO "config" VALUES(2, 'last_revision', NULL);
INSERT INTO "config" VALUES(3, 'host_id',

'VjZXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxCi4=    //此处的资料被我用xxxx盖住了大部分...
 ');
 COMMIT;

现在,我们把hostid解码,官方文档推荐使用 http://www.opinionatedgeek.com/dotnet/tools/Base64Decode/ decode之后,我们会获取三行字符:

V6c19ae63289XXXXXXXXXXXdb7372a8c772 //还是XXXXXX过的…
p1
.

第二/三行忽略,第一行去掉V,现在我们获取了hostid:6c19ae63289XXXXXXXXXXXdb7372a8c772

6,去dropbox网站绑定。

打开https://www.dropbox.com/cli_link?hostid=HOSTID (这里替换成上一步获取的字符串)

7,建立Dropbox文件夹:

$ mkdir ~/Dropbox //注意大小写

8,后台运行dropbox:

~/.dropbox-dist/dropboxd &

至此,所有 ~/Dropbox文件夹下的文件自动备份/同步至Dropbox了。

关于备份:

我们可以建立备份脚本,每天凌晨3点将数据都tar至 ~/Dropbox文件夹。cron+shell脚本即可搞定。这里就不多说了。

(我的Dropbox Referrals Link:https://www.dropbox.com/referrals/NTE2MDg0MDc5
用此链接注册Dropbox,你我都有空间加成…欢迎注册….)

参考文件:
1.How To Install Dropbox In An Entirely Text Based Linux Environment
2.linux下自动备份blog到dropbox (可惜,大部分工作完成后才发现此文)

Posted in Linux | Tagged dropbox, Linux

« Previous Next »

Copyright © 2023 Matrix.

Powered by WordPress and Hybrid.