全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 2852|回复: 16
打印 上一主题 下一主题

[经验] 在VPS中安装Dropbox实现网站的实时备份

[复制链接]
跳转到指定楼层
1#
发表于 2011-5-2 01:32:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这几天由于四处加共享,今天我的主用的那个dropbox帐号空间满了,使用状态竟然是120%,我急了,情急之下我就自己邀请自己先加250M再说,可是它必须安装客户端,正常同步一次以后才给增加空间,我就想着我应该把它装到那里去,因为我平常能接触到的机器都留下了dropbox的足迹。实在懒得折腾弄双开了。于是我就瞄准了我的VPS,举目四望我唯一没有装过dropbox而我又能全权控制的机器就剩下它了…

可是现在难题来了,dropbox初次使用需要运行一个gtk的向导来关联你的帐号,可是我那小小的VPS哪能奢侈到去装个Xserver呀。不过想想它那个gtk的向导对于只使用dropbox命令行的模式只需要运行那么一次,而这一次看起来还是挺简单的,就是本机器与帐号的绑定,那它的绑定信息肯定存在于某个文件之中……如果以上的假设成立的话,我只需要修改这个文件,填入我的帐号信息就ok了……

鉴于dropbox是个半开源的产物,有这样需求的肯定不止我一人,于是我就google之,看看有没有能直接使用的解决办法,你还别说,还真让我找到了,就是这个dbmakefakelib.py脚本,从名字就可以看出它会创建一些虚假的lib来欺骗dropbox的gui向导,使其能够运行。

dropbox运行后会创建一个sqlite的db文件,里面就保存着本机器的一些信息,然后我们只需要手动将其与自己的帐号绑定就能实现同步了,逻辑说了一大堆,其实实际操作起来还是很简单的,我这就列下步骤:
  1. 1、登陆进VPS或者是服务器,进入用户目录
  2. cd

  3. 2、下载dropbox的客户端,要For linux那个而非For Nautilus的
  4. wget -O dropbox.tar.gz http://www.dropbox.com/download?plat=lnx.x86
  5. 这个是32位的,64位就这样
  6. wget -O dropbox.tar.gz http://www.dropbox.com/download?plat=lnx.x86_64

  7. 3、解压
  8. tar xzvf dropbox.tar.gz

  9. 4、下载dbmakefilelib.py并运行
  10. wget http://dl.dropbox.com/u/637552/Dropbox/dbmakefilelib.py
  11. python dbmakefilelib.py

  12. 如果出现以下信息,说明它运行正常

  13. adding library libgtk-x11-2.0.so.0
  14. adding library libgdk-x11-2.0.so.0
  15. adding library libatk-1.0.so.0
  16. adding library libgdk_pixbuf-2.0.so.0
  17. adding library libpango-1.0.so.0
  18. adding library libgobject-2.0.so.0
  19. adding library libgmodule-2.0.so.0
  20. adding library libgthread-2.0.so.0
  21. adding library libglib-2.0.so.0
  22. adding function gtk_tree_view_new
  23. adding function gtk_toolbar_new
  24. adding function g_threads_got_initialized
  25. adding function gtk_grab_remove
  26. adding function gtk_button_new
  27. adding function gtk_frame_new
  28. adding function gtk_major_version
  29. … lots more of this …
  30. adding function g_static_rw_lock_writer_unlock
  31. adding function g_value_set_boxed_take_ownership
  32. adding function g_boxed_type_register_static
  33. adding function g_datalist_clear
  34. dropboxd ran for 15 seconds without quitting – success?

  35. 看到它的提示了吗,dropbox已经启动了,让你运行15秒后再退出,这个过程就是dropbox生成机器信息并保存到db文件的,其实对于国外的vps来说几秒时间就够了,我们ctrl-c将其退出,完成接下来的步骤

  36. 5、进入dropbox的dot目录导出机器信息
  37. $ cd .~/.dropbox
  38. $ sqlite3 dropbox.db

  39. SQLite version 3.6.22
  40. Enter ".help" for instructions
  41. Enter SQL statements terminated with a ";"
  42. sqlite> .dump config

  43. 我们会在导出的信息中看到如下的一串字符

  44. INSERT INTO "config" VALUES(4,'host_id','VmQ0NWFlMTdmYmQ3OGYzMzgyOTM0NWMzN2Q1MGFkOTIzCnAxCi4=
  45. ');

  46. 这个host_id就是机器的唯一标识,我们需要用它来跟自己的账户进行匹配,不过在这之前还有个工作需要做,因为上面的那长串字符很明显可以看出是用base64编码后的结果,我们得先把它解码再说,注意这里dropbox耍了个小花招,这串字符串前面的那个”V“,是无用的,我们在解码后的把它忽略掉

  47. 6、将base64字符串解码
  48. $ echo VmQ0NWFlMTdmYmQ3OGYzMzgyOTM0NWMzN2Q1MGFkOTIzCnAxCi4= | base64 -d

  49. Vd45ae17fbd78f33829345c37d50ad923
  50. p1
  51. 我的结果是Vd45ae17fbd78f33829345c37d50ad923,忽略掉”V“,就是d45ae17fbd78f33829345c37d50ad923

  52. 补充:
  53. 如果你觉得上面的步骤麻烦,我写了个python脚本,可以直接解出真正的host_id

  54. try:
  55.     from sqlite3 import dbapi2 as sqlite
  56. except:
  57.     from pysqlite2 import dbapi2 as sqlite
  58. import os,pickle,base64
  59. db_path = os.path.expanduser('~/.dropbox/dropbox.db')
  60. conn = sqlite.connect(db_path)
  61. cur = conn.cursor()
  62. row = cur.execute('SELECT value from config where key = "host_id"').fetchone()
  63. print pickle.loads(base64.b64decode(row[0]))

  64. 7、将账户信息与机器信息绑定
  65. 这步很简单,只需要访问以下网址,并登陆
  66. HOSTID替换成你刚才解码出来的那串字符就行了
  67. https://www.dropbox.com/cli_link?host_id=HOSTID

  68. 8、建立dropbox的同步目录
  69. dropbox的同步目录默认的是~/Dropbox
  70. $ mkdir ~/Dropbox

  71. 9、运行,开始你的同步
  72. $ ~/.dropbox-dist/dropboxd &
  73. 到这里dropbox就可以正常运行并同步了,文章标题说的是备份网站数据,那么我们就来使我们的网站数据能够同步到dropbox服务器上
  74. 其实很简单,就是建立符号连接而已,windows之前是没有这个功能的
  75. 比如要备份/var/www这个目录
  76. cd ~/Dropbox
  77. $ ln -s /var/www web_backup
  78. 这就可以了,或者要备份/etc目录
  79. $ cd ~/Dropbox
  80. $ ln -s /etc etc_backup
  81. ok.发挥你的想象尽情的使用吧。
复制代码
另外,如果你看到这篇文章感觉对你有用而你又要马上实施你的同步备份,且没有dropbox帐号,那么就用我的这个推荐链接注册吧,这样你我都能得到额外的250M空间,没办法,在下现在空间真的是太吃紧了,谢谢。
https://www.dropbox.com/referrals/NTI5NzY3MDk

转载自LazyHack | 在VPS中安装Dropbox实现网站的实时备份
http://lazyhack.net/install-dropbox-in-vps/

[ 本帖最后由 Captain 于 2011-5-2 01:34 编辑 ]

评分

参与人数 3威望 0 收起 理由
windywinter -3 你就不能先查下官方正版教程么?http://wiki. ...
mslxd + 5 写得挺好啊
hiemsventosa -2 la垃圾教程。,

查看全部评分

2#
发表于 2011-5-2 01:35:59 | 只看该作者
LZ試試memopal吧,邀請見簽名,目前沒有被牆
dropbox擴容我發過一篇講思路的帖子,你也可以看看
3#
发表于 2011-5-2 01:50:19 | 只看该作者
MARK
4#
发表于 2011-5-2 01:52:35 | 只看该作者
本机用Oracle VM VirtualBox建一个xp
装上影子系统或者其他别的还原系统

改mac地址即可..
5#
发表于 2011-5-2 01:53:51 | 只看该作者
原帖由 l4steleven 于 2011-5-2 01:50 发表
MARK
6#
发表于 2011-5-2 01:55:53 | 只看该作者
10几G的文件, 还是买个无限空间备份吧。 免费的是没得玩了。
7#
发表于 2011-5-2 02:29:43 | 只看该作者
去淘宝买个18G账号几块钱,省时省力,还拉动了内需。
8#
发表于 2011-5-2 04:43:26 | 只看该作者
18G,六块钱,还买一送一。
9#
发表于 2011-5-2 04:56:49 | 只看该作者
手里有10个GD免空的路过
10#
发表于 2011-5-2 09:34:46 | 只看该作者
Mark
有三个GD免费空间的路过
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2025-10-27 17:43 , Processed in 0.069153 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表