推荐sersync来进行文件同步

作者: nick 分类: linux 发布时间: 2010-05-18 14:13 ė 62条评论

抑制不住的冲动给大家介绍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:金山的同学开源出来的,不得不推荐鼓励下。

本文出自 传播、沟通、分享,转载时请注明出处及相应链接。

本文永久链接: https://www.nickdd.cn/?p=534

2条评论

  1. nick 2010年11月18日 03:51 回复

    @dd
    这个只适用于Linux,Windows下有很多工具的,介绍你一个我经常使用的:FastCopy,性能还不错。

  2. dd 2010年11月17日 03:22 回复

    不知这东西在WINDOWS下是否有相应的实现
    现在公司开发在VMWARE里,每次改了源代码,要找到编译后的文件,再传到FTP
    其中要一个一个目录去找,很麻烦

发表评论

您的电子邮箱地址不会被公开。

Ɣ回顶部