sersync+rsync实时数据同步

1、相关背景介绍

前面有关文章配置实现了rsync增量同步以及配置为定时同步,但是在实际生产环境中需要实时的监控数据从而进行同步(不间断同步),可以采取inotify-tools+rsync或者rsync+sersync进行实时同步。

以上两种方法的区别是:

rsync+Inotify-tools

(1):Inotify-tools只能记录下被监听的目录发生了变化(包括增加、删除、修改),并没有把具体是哪个文件或者哪个目录发生了变化记录下来;

(2):rsync在同步的时候,并不知道具体是哪个文件或者哪个目录发生了变化,每次都是对整个目录进行同步,当数据量很大时,整个目录同步非常耗时(rsync要对整个目录遍历查找对比文件),因此,效率很低。

rsync+sersync

(1):sersync可以记录下被监听目录中发生变化的(包括增加、删除、修改)具体某一个文件或某一个目录的名字;

(2):rsync在同步的时候,只同步发生变化的这个文件或者这个目录(每次发生变化的数据相对整个同步目录数据来说是很小的,rsync在遍历查找比对文件时,速度很快),因此,效率很高。

小结:当同步的目录数据量不大时,建议使用rsync+Inotify-tools;当数据量很大(几百G甚至1T以上)、文件很多时,建议使用rsync+sersync。

2、rsync的配置

sersync是以rsync为前提的,所以需要先配置rsync,相关说明可以参考前面有关文章

3、sersync的安装及配置

3.1 创建规范目录

mkdir -p /service/tools

mkdir /application

3.2 上传

上传sersync_installdir_64bit到/service/tools

这里提供一个sersync_installdir_64bit的免安装版本,点击此处获取

3.3 解压

unzip sersync_installdir_64bit.zip

3.4 安装

免安装版本,移动解压后的文件到安装目录下即可

mv sersync_installdir_64bit/sersync /application/

3.5 配置

cd /application/sersync/    

chmod +x bin/sersync        #添加执行权限

ln -s /application/sersync/bin/sersync /usr/bin/        #创建快捷方式便于tab

修改配置文件

vim conf/confxml.xml

修改以下几处内容

15:<createFile start="true"/>

24:<localpath watch="/backup">

25:<remote ip="192.168.1.41" name="backup"/>

30:<commonParams params="-azP"/>

31:<auth start="true" users="rsync_backup" passwordfile="/etc/rsync.password"/>

36:<failLog path="/application/sersync/logs/rsync_fail_log.sh"

保存退出

3.6 启动

sersync -h    #查看帮助

mkdir -p /backup    新建在配置文件中指定的需要实时同步的目录,可以在此目录下创建一些文件进行测试

对照帮助添加参数启动sersync,如果配置文件有错误则无法启动

sersync -dro /application/sersync/conf/confxml.xml

启动成功后会创建监控目录的进程,备份服务器下相关目录也会随时进行同步

3.7 关于配置文件confxml.xml的说明:

4、sersync监控多个目录

修改配置文件实现sersync监控多个目录,并不能简单的通过在confxml.xml这一个配置文件中添加多个目录,正确的做法是写多个配置文件,进而启动多个sersync进程加载相应的配置文件来实现

 

博主原创文章,转载请务必注明出处

最新文章

  1. 由于服务器意外的断电,导致SQL SERVER服务器上数据库出现“置疑”而无法使用,
  2. CentOS 7 学习笔记(二)systemd
  3. 原来css中的border还可以这样玩
  4. ApacheServer-----关于443端口被占用的解决方法
  5. SQL Server中解决死锁
  6. goldengate复制过程字符集处理一例
  7. c# 控制服务启动停止
  8. javascript深入理解闭包
  9. oc语言学习之基础知识点介绍(五):OC进阶
  10. iOS多工程依赖
  11. sass学习笔记 -- sass的四种编译方法
  12. Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL
  13. NewBuiltBottomSheetDialog【新建底部对话框】
  14. 如何在.NET Core控制台程序中使用依赖注入
  15. CSipIm断网重连崩溃原因分析
  16. Intelij IDEA 内置 sql gui
  17. NetMQ 发布订阅模式 Publisher-Subscriber
  18. 禁止用键盘左右箭头,去切换PageControl页签
  19. gcc 库路径里同时有相同文件名的动态库和静态库
  20. c++--------获取某个路径下所有文件的文件名,读写TXT文件到新的文件

热门文章

  1. Linux系统——提高编译速度的方法
  2. 威士忌(whiskey)
  3. Gcd反应堆 (pgcd)
  4. ASP.NET Identity 使用 RoleManager 进行角色管理 (VS2013RC)
  5. 乌班图 root权限获取
  6. mysql 逻辑架构(三层)
  7. 当表名存在 点 的时候,EntityFramework的写法
  8. C# WeakReference(弱引用)
  9. PHP命令行执行程序php.exe使用及常用参数
  10. python--jinja2