loading...

推荐sersync来进行文件同步

发布时间:May 17, 2010 分类:Linux

Visual Studio的广告剧

Google App Engine的app.yaml详细说明

抑制不住的冲动给大家介绍sersync,来进行文件同步,公司的产品部署平台就是采用SVN + sersync来实现的。可以参考这篇文章《利用SVN搭建测试服务器》,文件同步采用sersync即可。

sersync原理
使用 Linux 2.6 内核的 inotify 监控 Linux 文件系统事件,被监听目录下如果有文件发生修改,sersync 将通过内核自动捕获到事件,并将该文件利用 rsync 同步到多台远程服务器。sersync 仅仅同步发生增、删、改事件的单个文件或目录,不像rsync镜像同步那样需要比对双方服务器整个目录下数千万的文件,并且支持多线程同步,因此效率非常高。

sersync介绍
sersync主要用于服务器同步,web镜像等功能。基于boost1.41.0,inotify api,rsync command.开发。目前使用的比较多的同步解决方案是inotify-tools+rsync ,另外一个是google开源项目Openduckbill(依赖于inotify- tools),这两个都是基于脚本语言编写的。相比较上面两个项目,本项目优点是:

  1. sersync是使用c++编写,而且对linux系统文件系统产生的临时文件和重复的文件操作进行过滤(详细见附录,这个过滤脚本程序没有实现),所以在结合rsync同步的时候,节省了运行时耗和网络资源。因此更快。
  2. 相比较上面两个项目,sersync配置起来很简单,其中bin目录下已经有基本上静态编译的2进制文件,配合bin目录下的xml配置文件直接使用即可。
  3. 另外本项目相比较其他脚本开源项目,使用多线程进行同步,尤其在同步较大文件时,能够保证多个服务器实时保持同步状态。
  4. 本项目有出错处理机制,通过失败队列对出错的文件重新同步,如果仍旧失败,则每10个小时对同步失败的文件重新同步。
  5. 本项目自带crontab功能,只需在xml配置文件中开启,即可按您的要求,隔一段时间整体同步一次。无需再额外配置crontab功能。
  6. 本项目socket与http插件扩展,满足您二次开发的需要。

PS:金山的同学开源出来的,不得不推荐鼓励下。

Tags: SVN, 同步, sersync


已有 18 条评论 »

  1. 嬴月 嬴月

    谢谢分享

  2. 网点 网点

    张X?

    1. kimi kimi

      @网点, 他同事搞的,http://code.google.com/p/sersync/ 这里有介绍

  3. xing393939 xing393939

    你好,发现你的网站速度好快,能问下空间在哪里买的吗?

    1. kimi kimi

      @xing393939, www.meyu.net

  4. scotoma scotoma

    很不错,这可以拿来用了...谢谢分享

  5. evoup evoup

    很不错的idea,下来看看

  6. nalimai nalimai

    谢谢分享

  7. 老朋友 老朋友

    我的网站,pr为2 ,不知道能不能跟你交换个链接
    域名是http://shanhairail.info
    400电话
    找不到你的联系方式,如果可以的话,我的QQ:515246540,

  8. 最有效的减肥药 最有效的减肥药

    不错支持下

  9. kimi kimi

    测试评论是否可以发表

    1. kimi kimi

      @kimi, 可以发表

  10. Air Jordan Air Jordan

      慷慨的给予快乐,自己更快乐。

  11. Hip Hop Clothing Hip Hop Clothing

      你怎么说和你说什么同样重要。

  12. kimi kimi

    楼上2位是广告

  13. 蓝色夏威夷 蓝色夏威夷

    不错,如果支持双向同步就好了

  14. 误人子弟 误人子弟

    误人子弟

  15. seanlook seanlook

    1. 多文件夹同步无法实现,只能启动多个sersync进程
    2. 对于目录排除支持太有限了,如果同时支持手动添加inotifywait和rsync的exclude参考就完美了

添加新评论 »

captcha
请输入验证码