English |
  • 美国VPS主机推荐
  • |
  • 代购服务
  • |
  • 10美元以下VPS
  • |
  • VPS新手指南/教程
  • |
  • 留言板
  • |
  • 关于
  • | 登录 |

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

    2010年03月26日 上午 | 作者:VPS侦探

    这几天由于四处加共享,今天我的主用的那个Dropbox帐号空间满了,使用状态竟然是120%,我急了,情急之下我就自己邀请自己先加250M再 说,可是它必须安装客户端,正常同步一次以后才给增加空间,我就想着我应该把它装到那里去,因为我平常能接触到的机器都留下了Dropbox的足迹。实在 懒得折腾弄双开了。于是我就瞄准了我的VPS,举目四望我唯一没有装过Dropbox而我又能全权控制的机器就剩下它了…

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

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

    Dropbox运行后会创建一个sqlite的db文件,里面就保存着本机器的一些信息,然后我们只需要手动将其与自己的帐号绑定就能实现同步了,逻辑说了一大堆,其实实际操作起来还是很简单的,我这就列下步骤:

    1、登陆进VPS或者是服务器,进入用户目录

    cd

    2、下载dropbox的客户端,要For linux那个而非For Nautilus的

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

    这个是32位的,64位就这样

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

    3、解压

    tar xzvf dropbox.tar.gz

    4、下载dbmakefilelib.py并运行

    wget http://dl.dropbox.com/u/637552/Dropbox/dbmakefilelib.py
    python dbmakefilelib.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?

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

    $ cd .~/.dropbox
    $ sqlite3 dropbox.db
    
    SQLite version 3.6.22
    Enter ".help" for instructions
    Enter SQL statements terminated with a ";"
    sqlite> .dump config

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

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

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

    $ echo mQ0NWFlMTdmYmQ3OGYzMzgyOTM0NWMzN2Q1MGFkOTIzCnAxCi4= | base64 -d
    
    Vd45ae17fbd78f33829345c37d50ad923
    p1

    我的结果是Vd45ae17fbd78f33829345c37d50ad923,忽略掉”V“,就是d45ae17fbd78f33829345c37d50ad923
    7、将账户信息与机器信息绑定
    这步很简单,只需要访问以下网址,并登陆
    HOSTID替换成你刚才解码出来的那串字符就行了

    https://www.dropbox.com/cli_link?host_id=HOSTID

    8、建立dropbox的同步目录
    dropbox的同步目录默认的是~/Dropbox

    $ mkdir ~/Dropbox

    9、运行,开始你的同步

    $ ~/.dropbox-dist/dropboxd &

    到这里dropbox就可以正常运行并同步了,文章标题说的是备份网站数据,那么我们就来使我们的网站数据能够同步到dropbox服务器上
    其实很简单,就是建立符号连接而已,windows之前是没有这个功能的
    比如要备份/var/www这个目录

    cd ~/Dropbox
    $ ln -s /var/www web_backup

    这就可以了,或者要备份/etc目录

    $ cd ~/Dropbox
    $ ln -s /etc etc_backup

    ok.发挥你的想象尽情的使用吧。
    另外,如果你看到这篇文章感觉对你有用而你又要马上实施你的同步备份,且没有Dropbox帐号,那么就用我的这个推荐链接注册吧,这样你我都能得到额外的250M空间,没办法,在下现在空间真的是太吃紧了,谢谢。
    https://www.dropbox.com/referrals/NTEzOTQ2NjI5

    >>转载请注明出处:VPS侦探 本文链接地址:https://www.vpser.net/manage/dropbox-backup-in-vps.html
    VPS侦探推荐:
    遨游主机VultrLinode搬瓦工LOCVPSKVMLAHOSTKVMHostXen80VPS美国VPS主机,国内推荐腾讯云阿里云
    欢迎加入VPS侦探论坛交流:https://bbs.vpser.net

    发表评论

    *必填

    *必填 (不会被公开)

    评论(7条评论)

    1. VPSer说道:

      @小北, 可以用crontab实现设置多长时间备份一次。

    2. 小北说道:

      这个东西太帅了
      安装成功 遇到点状况
      我把log文件也加入了实时备份 每次写日志 都要本地同步一次

      有没有办法设置多长时间同步一次?1个小时或者一天一次什么的 ?

    3. VPSer说道:

      @xkx, 打包后上传到dropbox会占用,可以选择在访问用户比较少的时候上传。

    4. VPSer说道:

      @lewy, 嗯,免费用户最多可以到3G。

    5. xkx说道:

      赞,这个太有用了。
      只是传来传去原来文件的权限会丢掉。。只好先打包了。
      不过打包后会多占带宽吧?

    6. lewy说道:

      好文。。dropbox的免费用户最大容量不是只能到3G?

    7. [...] This post was mentioned on Twitter by Rain Yang and VPSer, darkhucx. darkhucx said: New blog post: 在VPS中安装Dropbox实现网站的实时备份 http://www.vpser.net/manage/dropbox-backup-in-vps.html (via @vpser) [...]