使用 Dropbox 实现服务器和本地资源的自动化同步

来源:互联网 发布:电脑桌面提醒软件 编辑:程序博客网 时间:2024/05/25 08:14

一、引子

        在本系列上一篇文章《使用 Dropbox 提高个人数据管理效率》中我们看到,Dropbox 在多终端数据同步方面简单、好用,同步速度也不错,

于是考虑使用 Dropbox 自动同步服务器(测试服务器而非生产环境服务器)和本地开发环境(主要是一些易变的文件资源)。

        这个想法的产生源于实际工作中,常常需要将 Linux 测试服务器的文件定期下载到本地,以保证本地运行环境和服务器环境的一致。这是

因为项目开发中前端资源的更新只会自动推送到测试服务器,而我们的代码在上线测试机执行前,往往需要在本地集成测试通过,因此如果前端

资源更新时也会自动的推送一份给我们本地,那么就可以省去每天定期去服务器下载的无谓劳动。


二、架构选择

        基于上述想法,设计如下两个方案,

        方案1:服务器绑定开发者 A 的账户,A 共享文件资源给其他开发者账户



        方案2:服务器绑定公共账户,公共账户作为共享资源的集散地,将资源分发给其他开发者


        显然方案2比方案1更好一些,一者方案1会让开发者 A 产生隐私泄露或者密码被切的忧虑,而方案2中的公共账户大家都可以登录和维护;

二者是方案1中如果开发者 A 离职,服务器需要重新绑定其它开发者账户,维护麻烦,而方案2中无论是删除用户或者增加用户都是非常容易的,

因此,我最终按照方案2搭建的系统。


三、搭建

        1.  注册公共账户,注意邮箱必须是真实存在的公共邮箱,因为 Dropbox 有些操作需要邮件点击链接验证;密码尽量设置复杂一些。

        2.  在 Linux 服务器上安装 Dropbox:下载解压后执行 .dropbox-dist/dropboxd & 启动 Dropbox daemon 进程,初次启动时需要访问

一个链接以绑定指定账户 https://www.dropbox.com/cli_link?host_id=XXX  安装参考http://dropboxchina.com/Download/dropbox-for-linux.html

        3.  安装启动成功后,会自动在根目录创建一个 Dropbox 文件夹,可以通过创建软链的方式将任意资源加入 Dropbox ,例如: ln -s /usr config

        4.  登录公共账户的 web 端,将指定的文件夹共享,并邀请其他开发者加入此共享



     


    


        5.  完成公共账户的一次验证,其他开发者各自验证并接受邀请即可实现自动共享

        6.  本地(也需要安装 Dropbox 客户端)创建快捷方式指向 Dropbox 文件夹中的共享资源,整个搭建过程结束


四、与其他同步方法的比较

       其他已知的同步工具有 Rsync, 服务器开一个rsync的server, 开发者本地作为客户端,通过编写批处理脚本从服务器获取资源。

Dropbox 方式与 Rsync 方式相比,

      优点: Dropbox 架构一旦搭建好, 再也不需要人工干预同步过程,因为 Dropbox 是事件驱动的,即服务器上一旦发生变动,会实时同步到开发者本机,

而 Rsync 方式需要客户端编写 bat 脚本定时获取服务器资源,成本高,体验差。

      缺点: Dropbox 同步需要走公网并将资源文件存储在云端,数据容易被窃取,同时 dropboxd 进程监听没有对 IP 做限制,使得服务器容易受到来自外网的攻击,

而 Rsync 服务端可以选择只监听内网 IP 或者通过设置 IP 白名单的方式防止攻击。


五、总结

     总的来说,使用 Dropbox 搭建的同步结构具有操作简单、同步实时的优点,适合在安全性要求很低的环境中同步非敏感资源。本文只是

探讨了如何使用 Dropbox 来优化多人协作,提高工作效率的一种可能,这也是 Dropbox 的产品精髓所在。实际应用中,这种方案是否适合,

需要自己评估一下,因为在对安全性有所要求的环境中,这种方案可能会让你战战兢兢~



原创粉丝点击