阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS7.0下Rsync+sersync实现数据实时增量同步备份

206次阅读
没有评论

共计 3782 个字符,预计需要花费 10 分钟才能阅读完成。

前言:
一、为什么要用 Rsync+sersync 架构?
1、sersync 是基于 Inotify 开发的,类似于 Inotify-tools 的工具
2、sersync 可以记录下被监听目录中发生变化的(包括增加、删除、修改)具体某一个文件或某一个目录的名字,然后使用 rsync 同步的时候,只同步发生变化的这个文件或者这个目录。

二、Rsync+Inotify-tools 与 Rsync+sersync 这两种架构有什么区别?
1、Rsync+Inotify-tools

(1):Inotify-tools 只能记录下被监听的目录发生了变化(包括增加、删除、修改),并没有把具体是哪个文件或者哪个目录发生了变化记录下来;
(2):rsync 在同步的时候,并不知道具体是哪个文件或者哪个目录发生了变化,每次都是对整个目录进行同步,当数据量很大时,整个目录同步非常耗时(rsync 要对整个目录遍历查找对比文件),因此,效率很低。

2、Rsync+sersync
(1):sersync 可以记录下被监听目录中发生变化的(包括增加、删除、修改)具体某一个文件或某一个目录的名字;
(2):rsync 在同步的时候,只同步发生变化的这个文件或者这个目录(每次发生变化的数据相对整个同步目录数据来说是很小的,rsync 在遍历查找比对文件时,速度很快),因此,效率很高。
小结:当同步的目录数据量不大时,建议使用 Rsync+Inotify-tools;当数据量很大(几百 G 甚至 1T 以上)、文件很多时,建议使用 Rsync+sersync。

环境说明:
操作系统:CentOS 7.0
源服务器:192.168.1.51
目标服务器:192.168.1.52

目的:
把源服务器上 /home/ces 目录实时同步到目标服务器的 /home/ces 下

具体操作:

一、目标服务器安装 Rsync 服务端
1、关闭 SELINUX
vi /etc/selinux/config 

SELINUX=disabled
 
setenforce 0 #立即生效

2. 关闭防火墙 IPTABLES

[root@master2 ~]# iptables -F
[root@master2 ~]# iptables -L
Chain INPUT (policy ACCEPT)
target    prot opt source              destination       

Chain FORWARD (policy ACCEPT)
target    prot opt source              destination       

Chain OUTPUT (policy ACCEPT)
target    prot opt source              destination

3、检查是否安装 rsync

[root@master2 ~]# rpm -qa|grep rsync
rsync-3.0.9-15.el7.x86_64

4、配置 rsync 的配置文件

vim /etc/rsyncd.conf

#Rsync configuration:
uid = root                            #设置 rsync 运行权限为 root
gid = root                            #设置 rsync 运行权限为 root
use chroot = no                        # 安全相关,默认为 true,修改为 no,增加对目录文件软连接的备份
port = 873                            # 指定 rsync 服务的默认端口号
max connections = 2000                # 并发连接数
timeout = 200                          # 超时时间(秒)
log file = /var/run/rsyncd.log        # 指定日志文件位置,启动 rsync 后自动产生这个文件,无需提前创建
pid file = /var/run/rsyncd.pid        # 指定 rsync 的 pid 目录
lock file = /var/run/rsyncd.lock      # 指定 rsync 的锁文件【重要】, 支持 max connections 参数的锁文件
log format = %t %a %m %f %b
#################################################
#[rsync]                                # 模块
path = /home/ces/                    #rsync 服务端数据目录路径
commemt = rsync
list = yes
read only = no                        # no 客户端可上传文件,yes 只读
write only = no                      # no 客户端可下载文件,yes 不能下载
auth users = test                      #执行数据同步的用户名,可以设置多个,用英文状态下逗号隔开
secrets file = /etc/rsyncd.secret      #用户认证配置文件,里面保存用户名称和密码,后面会创建这个文件
ignore errors = yes
hosts allow = 192.168.1.0/255        #允许进行数据同步的客户端 IP 地址段,可以设置多个,用英文状态下逗 > 号隔开
hosts deny = 0.0.0.0/32            #禁止数据同步的客户端 IP 地址,这里设置了不禁止
 

5、创建 rsync 同步密码文件,并设置权限为 600
[root@master2 ~]# echo “test:test123” >  /etc/rsyncd.secret
[root@master2 ~]# chmod 600  /etc/rsyncd.secret
[root@master2 ~]# ll /etc/rsync.password
-rw——- 1 root root 14 4 月  18 09:25 /etc/rsync.password
[root@master2 ~]# cat  /etc/rsyncd.secret
test:test123

6. 启动 rsync 守护进程,并写入开机自启动

[root@master2 ~]# rsync –daemon
[root@master2 ~]#  ps -ef | grep rsync
root      1662    1  0 09:34 ?        00:00:00 rsync –daemon
root      6310  6068  0 17:02 pts/0    00:00:00 grep –color=auto rsync
[root@master2 ~]# netstat -nulpt| grep rsync
tcp        0      0 0.0.0.0:873            0.0.0.0:*              LISTEN      1662/rsync         
tcp6      0      0 :::873                  :::*                    LISTEN      1662/rsync       
 
设置开机自启动, 写入到 /etc/rc.local 里面

vim /etc/rc.local

# rsync server progress
/usr/bin/rsync –daemon –config=/etc/rsyncd.conf

7. 创建相关待同步的目录 /home/ces/

[root@master2 ~]# mkdir -p /home/ces
[root@master2 ~]# tree /home
 

二、在源服务器安装 Rsync 服务端 + 配置 sersync
1、按照上面步骤配置按照 Rsync 服务端,需要注意的是创建 rsync 同步密码文件,内容只需要填写密码:test123

[root@master1 ~]# echo “test123” >  /etc/rsyncd.secret
[root@master1 ~]# chmod 600  /etc/rsyncd.secret
[root@master1 ~]# ll /etc/rsync.password
-rw——- 1 root root 14 4 月  18 09:25 /etc/rsync.password
[root@master1 ~]# cat  /etc/rsyncd.secret
test123
 

2、测试 rsync 同步情况

CentOS 6.5 rsync+inotify 实现数据实时同步备份 http://www.linuxidc.com/Linux/2016-11/137655.htm

rsync+inotify 实现数据的实时同步 http://www.linuxidc.com/Linux/2017-01/139778.htm

rsync+inotify 实现服务器之间文件实时同步详解  http://www.linuxidc.com/Linux/2016-11/137659.htm

Rsync 结合 Inotify 实时同步配置  http://www.linuxidc.com/Linux/2017-02/140877.htm

rsync+inotify 实现数据的实时备份  http://www.linuxidc.com/Linux/2016-11/137630.htm

rsync+inotify 实现数据自动同步  http://www.linuxidc.com/Linux/2017-03/141717.htm

Rsync 的详细介绍 :请点这里
Rsync 的下载地址 :请点这里

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-04/142896.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-21发表,共计3782字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中