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