推荐sersync来进行文件同步
本文最后更新于 5054 天前,其中的信息可能已经有所发展或是发生改变。

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

评论

  1. 嬴月
    14年前
    2010-5-18 0:47:23

    谢谢分享

  2. 14年前
    2010-5-18 17:10:46

    张X?

    • 博主
      网点
      14年前
      2010-5-19 1:38:17

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

  3. xing393939
    14年前
    2010-5-19 10:02:48

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

  4. 14年前
    2010-5-21 8:48:39

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

  5. evoup
    14年前
    2010-6-26 16:16:11

    很不错的idea,下来看看

  6. 14年前
    2010-7-18 21:54:33

    谢谢分享

  7. 老朋友
    14年前
    2010-7-22 14:53:22

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

  8. 14年前
    2010-8-18 16:22:25

    不错支持下

  9. 博主
    13年前
    2010-11-13 19:10:39

    测试评论是否可以发表

    • 博主
      Kimi
      13年前
      2010-11-13 19:10:54

      @kimi, 可以发表

  10. 13年前
    2010-11-22 16:56:50

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

  11. 13年前
    2010-11-23 14:41:45

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

  12. 博主
    13年前
    2010-11-24 10:46:57

    楼上2位是广告

  13. 13年前
    2011-2-12 10:47:49

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

  14. 误人子弟
    13年前
    2011-8-02 18:07:04

    误人子弟

  15. 9年前
    2015-5-05 15:46:02

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

  16. 7年前
    2017-8-28 17:46:16

    sersync是使用c++编写,而且对linux系统文件系统产生的临时文件和重复的文件操作进行过滤(详细见附录,这个过滤脚本程序没有实现)

    sersync 过滤不了,太可惜了,搞了我半天,解决放弃过滤了.. 多台服务器最好配置用户与密码都一样,要不然不能过滤,踩过的坑!!!!










发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇