sersync+rsync 数据同步配置

简介:

目标: 

在master 主机上写入数据后,master 利用sersync 监控本地数据目录,当发生变化时,触发命令,使用rsync推送变化的数据到远程的slave主机上,实现数据同步。


配置思路:

master:   

1、 安装 sersync ,配置confxml.xml文件(其实质就是记录执行rsync命令的一些参数,启动sersync2的服务后,会监控我们指定的目录,当发生变化时,就使用rsync 命令对变化的目录和文件进行同步)

2、 配置执行rsync 命令时所需要的密码文件,此密码为远程连接slave主机时的验证密码。(用户在confxml.xml文件中指定)

3、修改密码文件权限为600。

4 、sersync2守护进程(此步在配置好slave后执行)。


slave:  

1、安装rsync, 配置/etc/rsyncd.conf文件,指定同步用户、主机连接权限、同步的模块和数据复制的机制等。

2、创建rsync的用户密码认证文件,并修改文件权限为600.

3、使用rsync --daemon 启动监听本机873端口。


配置流程:

slave:

1、安装配置rsync:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
yum  install  rsync
vim  /etc/rsyncd .conf
 
uid = root
gid = root
use chroot = no      
max connections = 2000  
timeout = 600             
pid  file  = /var/run/rsyncd .pid        
lock  file  = /var/run/rsync .lock      
log  file  /var/log/rsyncd .log     
read  only = no
hosts allow = 192.168.20.11
hosts deny = 0.0.0.0 /32
auth  users  = rsync_backup
secrets  file  = /etc/rsync .password
[data_bak]                        
comment = hhhhh
path =  /data/

2、密码配置:

1
2
3
4
# cat /etc/rsync.password 
rsync_backup:passnfs
# ls -l /etc/rsync.password
-rw------- 1 root root 24 Jun  9 22:20  /etc/rsync .password


3、启动873端口:

1
2
3
4
5
rsync  --daemon
 
# netstat -lntp|grep 873
tcp        0      0 0.0.0.0:873             0.0.0.0:*               LISTEN      23812 /rsync         
tcp6       0      0 :::873                  :::*                    LISTEN      23812 /rsync


master:

1、下载sersync-64bit.tar.gz,解压安装,

1
2
3
4
tar  xf sersync-64bit. tar .gz
mv  GNU-Linux-x86  /usr/local/sersync
cd  /usr/local/sersync
cp  confxml.xml confxml.xml.bak


2、配置confxml.xml:

1
2
3
4
5
6
7
8
9
10
11
12
13
  <sersync>
         <localpath  watch = "/data" >                 # 同步数据目录
             <remote ip= "192.168.20.12"  name= "data_bak" />   #远程主机IP,远程rsync同步模块名称
             <!--<remote ip= "192.168.8.39"  name= "tongbu" />-->
             <!--<remote ip= "192.168.8.40"  name= "tongbu" />-->
         < /localpath >
         < rsync >
             <commonParams params= "-artuz" />   # rsync 同步参数
             <auth start= "true"  users = "rsync_backup"  passwordfile= "/etc/rsync.pas" />  #用户名密码文件
             <userDefinedPort start= "false"  port= "874" /><!-- port=874 -->
             <timeout start= "false"  time = "100" /><!-- timeout=100 -->
             < ssh  start= "false" />
         < /rsync >


3、配置密码文件:

1
2
3
4
# cat /etc/rsync.pas 
passnfs
# ls -l /etc/rsync.pas
-rw------- 1 root root 11 Jun  9 22:30  /etc/rsync .pas

4、执行sersync 命令守护进程,进行同步。

1
/usr/local/sersync/sersync2  -d -r -o  /usr/local/sersync/confxml .xml


添加定时任务监控

可以添加定时任务,对服务进程进行监控,如可以将下面的脚本加到master定时任务中每10min执行一次:

1
2
3
4
5
6
7
8
9
10
#!/bin/sh
sersync= "/usr/local/sersync/sersync2"
confxml= "/usr/local/sersync/confxml.xml"
status=$( ps  aux | grep  'sersync2' | grep  - v  'grep' | wc  -l)
if  [ $status - eq  0 ];
then
$sersync -d -r -o $confxml &
else
exit  0;
fi

同理,在slave上也可以将此脚本添加到定时任务:

1
2
3
4
5
6
7
8
#!/bin/sh
status=$( ps  aux| grep  rsync | grep  - v  grep | wc  -l)
if  [ $status - eq  0 ]
then
   rsync  --daemon
else
   exit  0
fi

小提示: 脚本名称不要与监控的服务名有相同的字段,如果有相同字段需要修改if 判断条件。



 本文转自 酥心糖 51CTO博客,原文链接:http://blog.51cto.com/tryingstuff/1933981

相关文章
|
6月前
|
网络协议 大数据 Linux
案列分享-因netfilter包过滤规则配置错误造成datax数据同步作业运行失败
案列分享-因netfilter包过滤规则配置错误造成datax数据同步作业运行失败
|
canal SQL JSON
Elastic: canal数据同步到ES配置常见报错
所有报错均为博主在实操过程中遇到的错误和解决办法,如果有其他报错或者不同的解决办法,请留言告诉我 安装canal过程中遇到问题,先在本文中查询是否有相同报错,将会为你节约大量排错时间
677 0
Elastic: canal数据同步到ES配置常见报错
|
9月前
|
算法 Linux
Linux系统【文件传输】rsync命令 – 远程数据同步工具
rsync命令来自于英文词组“remote sync”的缩写,其功能是用于远程数据同步。rsync命令能够基于网络(含局域网和互联网)快速的实现多台主机间的文件同步工作,并与scp或ftp发送完整文件不同,rsync有独立的文件内容差异算法,会在传送前对两个文件进行比较,只传送两者内容间的差异部分,因此速度更快。
149 2
|
11月前
|
安全 Unix Linux
【Linux网络服务】Rsync数据同步
【Linux网络服务】Rsync数据同步
深入浅出阿里数据同步神器:Canal原理+配置+实战全网最全解析!
canal 翻译为管道,主要用途是基于 MySQL 数据库的增量日志 Binlog 解析,提供增量数据订阅和消费。 早期阿里巴巴因为杭州和美国双机房部署,存在跨机房同步的业务需求,实现方式主要是基于业务 trigger 获取增量变更。从 2010 年开始,业务逐步尝试数据库日志解析获取增量变更进行同步,由此衍生出了大量的数据库增量订阅和消费业务。
|
数据采集 存储 JSON
数据集成模块中如何配置FTP数据同步
数据集成的FTP输入组件提供了读取FTP数据的能力。本文重点介绍如何配置FTP输入组件。
763 0
数据集成模块中如何配置FTP数据同步
|
存储 JSON NoSQL
数据集成模块中如何配置Mongo DB数据同步(2)
MongoDB是面向文档的NoSQL(非关系型)数据库,它的数据结构由字段(Field)和值(Value)组成,类似于JSON对象。 数据集成的Mongodb输出组件提供了写入Mongodb数据库的能力。本文重点介绍如何配置Mongodb的加载策略。
207 0
数据集成模块中如何配置Mongo DB数据同步(2)
|
存储 JSON NoSQL
数据集成模块中如何配置Mongo DB数据同步(1)
MongoDB是面向文档的NoSQL(非关系型)数据库,它的数据结构由字段(Field)和值(Value)组成,类似于JSON对象。 数据集成的Mongodb输入组件提供了从mongodb数据库中全量和增量两种读取方式,并且能够对数据自动进行数据分片,从而可以并发的高校读取数据。
2077 0
数据集成模块中如何配置Mongo DB数据同步(1)
|
分布式计算 DataWorks Shell
|
监控 应用服务中间件 开发工具
Centos7.4 搭建rsync+inotify 实现数据同步
简介 起因 因公司全部迁云,配置ECS时需要将Web集群之间配置 数据同步 以及 会话保持,接下来配置在 linux Centos7.4版本的系统操作。 优点 使用rsync工具和inotify机制相结合,可以实现触发式部署(实时同步),只要原始(主)位置的文档发生变幻,则立即启用增量推送操作,否则处于静态等待状态,这样以来,就避免了分布式集群部署过程复杂的问题。
1226 0

热门文章

最新文章