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 (可惜,大部分工作完成后才发现此文)