无言斋由xell进行随机更新,他是Einstein意义上的无神论者,Hayek意义上的自由主义者,Popper意义上的理性主义者,目前正在从事不赚钱的跨学科研究,最喜欢吃白切鸡,不看电视,认为一首歌的词和曲同样重要,坚决主张人权高于宠物权,擅长使用计算机、看书和睡觉,不擅长经商以及成为公务员。虽然他是Google的拥护者,但他愿意公布的电邮地址是(同这个页面风格一样简单的)xell@w.cn
<<  关于真实的问题——再评《颐和园》首页无题  >>
个人资料的备份与同步
2008-10-01|17:23:04| ‼ [1] | √ [0] 

  在经历过一次惨烈的硬盘损坏之后,我开始有规律地对重要资料进行备份,一段时间以来,试验了各种软件和方案,在此分享一下。
  我的重要资料包括文档、代码、数据、重要软件的设置等等,这些资料分散在硬盘的十几个甚至几十个目录之中,并且几乎每天都在变化(变化包括更新和回退)。我想我的情况肯定不是特例,这其中的麻烦也是许多人都在面临的。用手工的方式进行复制显然是愚蠢的方案,不仅容易出错或遗漏,而且非常浪费时间,当你隔几天就要从几十个目录中复制几千个细碎文件的时候,无聊乏味的体力活足以让你疯狂。因此,必须借助专门的软件。经过长期试验,我推荐以下三款软件/服务,并用它们组成了一个简单而有效的解决方案:
  1. Beyond Compare,这是一款目录和文件的比较软件。有很多同类软件可以完成这项任务,而且其中一些还是开源的(例如很有名的 WinMerge),但我坚持用它是因为它确实是同类中最好的,谁用谁知道。最新的大版本是3,整合了资源管理器右键,操作界面也大幅度更新,非常容易上手。
  2. JFileSync,这是一款同步软件,开源。同步软件领域也有许多同类软件在一争高下,许多商业软件确实能提供额外的专业级别操作。但就我的应用而言,JFileSync完全能满足要求(而且免费),它提供多种同步方案,用 Profile 的形式来管理同步项目,让你一次就能以多种同步方案,同步任意数量、任意位置的资料。这个软件是用 Java 写的,这也是我倾心于它的原因,实际上我一直打算参与开发——这是题外话了。
  3. DropBox,免费的在线资料备份与同步服务,一个字,赞!下面有详细介绍。

  我的解决方案大体如下:用 JFileSync,将硬盘上的资料一次性同步到某个设备中,例如硬盘上的某个用于备份的分区、移动硬盘或U盘等等,然后用 DropBox 将备份资料上传到网络上。在这些步骤中,如果需要,用 BC 来进行监视和手工同步。
  具体来说,我在硬盘上划出了一个5G的分区,并且在里头建立了一个 bk 目录,这个目录中的所有文件就是我需要备份的资料。同步和备份的任务由 JFileSync 来完成:在 JFileSync 中建立一个新的 Profile,它允许你指定任意数量的规则,例如规则一是将A目录中的文件同步至 bk,规则二是将B目录中的文件同步至 bk,等等。JFileSync 提供了9种同步方案,包括强制使得目的目录与源目录相同,或仅仅同步目录中的结构而非文件,等等。我的策略是单向同步,但如果你需要的不仅是备份,还包括多人多机器协作,那么双向同步才符合你的要求。建立好了 Profile 之后,以后每次操作,仅需点几下鼠标即可,非常便利。
  在单独的硬盘分区上进行备份,其实还是将所有鸡蛋装在同一个篮子里,因此我也用U盘做额外备份。这个时候就是 BC 的用武之地了。第一次的时候,手工将 bk 目录全部复制到U盘上,在这之后,用 BC 来判断到底更新或改动了什么文件,然后用 BC 的各种丰富的同步功能,仅仅同步这些更改过的文件即可。当然,JFileSync 也可以实现这一点,但直观性和操作性没那么好,更主要的是,JFileSync 需要用所谓的 JFS Server 这种高级特性来完成这项任务(除非你能保证你的U盘的盘符每一次都一样,这需要额外的技巧)。哪种方法更好,全看各人情况了。但 BC 的作用就在于,它提供足够专业的比较功能,因此这个软件不仅对资料的备份与同步有用,它也可以应用在许多其他场合;反正它已经成为我的必备软件之一。
  将硬盘上的或U盘上的资料备份到网络上,这里的意义就不仅仅是多加一重保障,而且能带来更方便的应用。当我被迫使用别人的电脑的时候,当我在其他城市而需要打印一份资料的时候,只要有网线就OK——这一切的关键在于,网络上的东西必须随时是同步好了的,能反映数据的最新状况,而且这些东西必须利于提取。这几年网络硬盘领域很热闹,国内国外都有很好的服务商,但这种服务是不够的,因为网络硬盘以单文件为对象进行组织,不提供目录结构,更不提供自动同步服务。我的项目源代码目录下面有很多层子目录,数千各类文件汇集于其中,大多数文件只有几K而已;如果使用网络硬盘,我(只能)将整个目录打包并上传;当这数千个文件中的几个文件有了变动,我就只能再打包,再上传,而之前的网络上的文件也就作废了,就更别提当我只需要其中的几个文件的时候,我还得把整个压缩包下载下来。
  DropBox 很好地满足了我的要求,而且它是免费的!其它的此类网络服务多多少少都要钱,而且基本上是国外的,还得用外汇,就凭这一点,它完胜。它提供2G免费空间,单文件最多350兆,文件数量不限——对于个人用户,这已经足够啦。而且它提供了一个简单得根本不需要用户插手、自动在后台运行的客户端软件。启动这个软件,告诉它哪个目录下的文档是要上传和同步到网络中的(例如我的 bk 目录),然后就没我的事情了,它将自动搞掂剩下的工作:它会自动分析哪些文件有更改,并且只上传这些文件,它会优先考虑上传小文件以避免网络阻塞,并且自动调节上传带宽。在 DropBox 的网站上,给出的是一个跟你的本地硬盘一致的目录结构,想下载哪个小文件,直接下载即可,也可以将整个目录打包为 zip 一起下载(顺便指出,DropBox 默认就支持 HTTPS 加密)。DropBox 早一阵子得要邀请码才能注册,现在已经全面开放了,因此,你要做的就是注册个用户名,下载并运行那个小小的客户端,然后,享受这一切即可。
  在暂时没有更专业的需求之前(例如多人协作,这需要版本管理),用上面的方案来给个人资料加保险已足以应付任何需求。如果你有更好的方案或更好的软件替代,也请分享出来。

注:DropBox 目前只支持同步一个指定目录中的所有内容。根据其官方论坛上的介绍,它的下一个版本将允许用户任意指定要同步的多个目录。因此在现阶段,你只能把所有要备份/同步的内容集中到某一个目录里头去(如上所述,在 JFileSync 等同步软件的辅助下,这是很简单的事情)。


  >[伪专业研究

评论内容

发表评论