Performancing Metrics

  • 终于找到了最合适的文件同步/备份工具

    2007-05-27

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://aleung.blogbus.com/logs/5545100.html

    很长时间以来,都为怎么在多台电脑之间同步文件而头痛。使用过不少的同步软件,都有或多或少的不足之处。因为两边的文件都可能被编辑,同步软件必须要足够自动化,能够自动判断同步的方向,只进行增量同步,并且要能够识别出文件的删除,别删了之后一同步又回来了。

    现在终于找到了一个满足要求的软件:Unison,经过差不多三个月的使用,感觉相当满意,可以介绍出来了。

    在我看来,Unison的优点有这些:

    • 除了本机磁盘同步外,还支持网络同步,可以通过socket通讯方式,而不是靠windows文件共享。我的laptop通过共享copy文件时,偶然会出现出错。Unison还支持ssh,在unix上可以用安全程度较高的ssh。
    • 有命令行模式,可以通过脚本自动运行。其实Unison本来就是命令行程序,只是提供了GTK的GUI。GTK的界面虽然不太漂亮,但还是很好用的,在GUI模式下,会先把各个文件的同步方向显出出来,可以修改,点击go才执行。
    • 自动化程度比较高,每次同步完成后会将文件状态记录下来,下次同步的时候就能自动进行增量同步了。只要不是两边同时发生了修改,基本不需要人工干预。
    • 配置比较灵活,可以按照通配符来忽略某些文件/目录。因为Unison原来是unix平台的软件,所以配置也是文件方式的,只习惯于Windows图形界面的人也许会不喜欢。
    • 支持跨平台同步,包括windows,各种unix,OS-X。这点我用不着,但对于同时使用不同操作系统的人会很有用。
    • 免费,开源(GPL)。

    我的工作环境有一台desktop和一台laptop,desktop的性能好些,所以一般都会在desktop上干活,但不在座位上时就只能用laptop,故此两台电脑都要有相同的文件,并且保持同步。现在保持同步的方法是:在desktop上以socket server模式运行unison,一直保持运行;laptop上通过cron在后台定时调用命令行的Unison,一天可以运行多次;如果我需要立即进行同步,就手工运行Unison GUI。

    一些tips:

    • 第一次同步会耗很多时间,因为unison要先对所有文件内容进行一次比较。以后的同步,如果在fastcheck模式下就会很快了。一定要记得在配置文件中加上配置:fastcheck = yes,否则每次都还是会做全文比较。非windows平台就没有这样的问题,具体看软件文档。
    • 作为socket server运行:unison -socket <port>
    • 命令行模式自动运行(无需人工干预,如果文件有冲突就skip):unison -batch <profile_name>

    顺便推荐一下这个Windows平台下的cron,一个几十k的小程序,使用起来跟unix的几乎一模一样,很好用。(2007-9-8 补充: 网上cron的页面已经没有了,我已将链接改为本地下载)


    历史上的今天:


    收藏到:Del.icio.us




    引用

    下面Blog引用了该文:
  • 在线备份

    Blog:good good study, day day up
    2008-09-15 11:00:19

    评论

  • 可惜这个软件对泰语文件名等小语种文件名支持不行啊。复制失败。
  • Hi,leo
    如果是需要在公司的电脑和家里的电脑之间同步某些文档,有什么好的工具推荐么?
    aleung回复james说:
    公司的电脑,如果是laptop,带回家连上网络用unison同步(其中一台电脑作为socket server运行)。

    如果你两台电脑不能放一起,也可以用一些在线的文件同步服务,不过有一定限制,也不适合于需要保密的文件。例如:http://aleung.blogbus.com/logs/29066197.html
    2009-02-22 16:55:20
  • MirrorDir 也叫同步精灵,小巧精悍,国内人开发的,用了N年。
    aleung回复dd说:
    类似的同步软件多着呢,不过,看我文章的第一段。
    2008-05-30 18:47:02
  • FileGee这款软件网上的评价很高,不知道笔者是否用过?
  • 多谢
  • 喂,哥们,

    “顺便推荐一下这个Windows平台下的cron”,这个软件叫什么名字啊?你的链接不能用,我google也没有找到,如果方便麻烦往我的邮箱里面发送一份,万分感谢!
  • 感谢~用于同步的软件这么久还真没有找到好用的。
  • 哈,每次上来都学到新的东西. 谢谢!
  • 试试先,现在家里2台电脑同步些重要文件,有点镜像的意思了。
  • 我只有一台工作电脑,只是要定时备份到我的移动硬盘而已,所以倒是没有你这种烦恼。



    不过这个工具还是值得试一下。另外我记得martin fowler是用subversion来保持多台机器同步的(http://www.martinfowler.com/bliki/Subversion.html)