CentOS7 rsync(sersync)
Rsync简介
Rsync(Remote Synchronize)是一款开源的、快速的、多功能的、可以实现全量及增量的本地或远程数据同步备份的优秀工具,并且支持多种操作系统平台运行。
Rsync具有本地与远程两台主机之间的数据快速复制同步镜像、远程备份等功能,该功能类似scp,但是优于scp功能,还具有本地不同分区目录之间全量及增量复制数据。
Rsync同步数据镜像时,通过“quick check”算法,仅同步大小或最后修改时间发生变化的文件或目录,当然也可以根据权限,属主等属性变化的同步,所以可以实现快速同步。
官网文档:https://rsync.samba.org/ftp/rsync/rsync.html
系统环境
系统版本:CentOS Linux release 7.5.1804 (Core)
简单架构图

目标服务器配置
1.安装软件
[root@node4 ~]# yum install -y rsync [root@node4 etc]# vim /etc/rsyncd.conf uid = rsync gid = rsync port = 873 use chroot = no max connections = 200 log file = /var/log/rsyncd.log pid file = /var/run/rsyncd.pid lock file = /var/run/rsyncd.lock dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2 [backup] path = /data/backup comment = from node3 to node4 ignore errors = yes read only = no list = no timeout = 600 auth users = rs_backup secrets file = /etc/rsync.password hosts allow = 172.16.88.23 hosts deny = 0.0.0.0/32 保存配置文件
2.创建密码文件(文件格式 用户:密码)
[root@node4 etc]# cat /etc/rsync.password rs_backup:feBa1850c0K4984c20a
3.修改密码文件权限
[root@node4 etc]# chmod 600 /etc/rsync.password
4.创建用户
[root@node4 etc]# useradd -s /sbin/nologin -M rsync
5.创建数据存储目录
[root@node4 etc]# mkdir -p /data/backup [root@node4 etc]# chown -R rsync:rsync /data/backup
6.启动应用程序,并设置开机启动
[root@node4 etc]# service rsyncd start
[root@node4 etc]# chkconfig rsyncd on
7.防火墙策略
检查selinux是否关闭 [root@node4 etc]# getenforce Disabled 开启873端口 [root@node4 etc]# firewall-cmd --zone=public --add-port=873/tcp --permanent [root@node4 etc]# firewall-cmd --reload
源服务器配置
1.安装软件
[root@node3 ~]# yum install -y rsync [root@node3 ~]# vim /etc/rsyncd.conf log file = /var/log/rsyncd.log pidfile = /var/run/rsyncd.pid lock file = /var/run/rsync.lock dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2 [backup] comment = from node3 to node4 uid = rsync gid = rsync port=873 保存配置文件
2.创建客户端密码文件
[root@node3 ~]# cat /etc/rsync.password feBa1850c0K4984c20a [root@node3 ~]# chmod 600 /etc/rsync.password
3.创建用户
[root@node3 ~]# useradd -s /sbin/nologin -M rsync
4.创建测试推送的数据目录
[root@node3 ~]# mkdir /data
[root@node3 ~]# cd /data/
[root@node3 data]# touch abc{1..6}
[root@node3 data]# chown -R rsync:rsync /data
5.测试推送
[root@node3 data]# rsync -avz /data rs_backup@node4::backup --password-file=/etc/rsync.password sending incremental file list data/ data/abc1 data/abc2 data/abc3 data/abc4 data/abc5 data/abc6 sent 378 bytes received 142 bytes 49.52 bytes/sec total size is 0 speedup is 0.00
6.安装配置sersync
软件下载地址 https://code.google.com/archive/p/sersync/downloads [root@node3 src]# ls sersync2.5.4_64bit_binary_stable_final.tar.gz [root@node3 src]# tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz [root@node3 src]# mkdir /usr/local/sersync [root@node3 src]# cp GNU-Linux-x86/* /usr/local/sersync [root@node3 sersync]# cd /usr/local/sersync [root@node3 sersync]# vim confxml.xml
7.创建检测脚本
[root@node3 home]# cat check.sh #!/bin/sh sersync="/usr/local/sersync/sersync2" confxml="/usr/local/sersync/confxml.xml" status=$(ps -ef |grep /usr/local/sersync/confxml.xml |grep -v grep |wc -l) if [ $status -eq 0 ]; then $sersync -d -r -o $confxml & else exit 0; fi [root@node3 home]# crontab -l */5 * * * * /home/check.sh
8.验证同步是否正常
[root@node3 data]# cd /data/ [root@node3 data]# echo abc1 > abc1 [root@node3 data]# echo 333333333333 > abc6 [root@node3 data]# mkdir test [root@node3 data]# rm -rf abc4 [root@node3 data]# ll total 8 -rw-r--r-- 1 rsync rsync 5 Jun 12 16:40 abc1 -rw-r--r-- 1 rsync rsync 0 Jun 11 17:34 abc2 -rw-r--r-- 1 rsync rsync 0 Jun 11 17:34 abc3 -rw-r--r-- 1 rsync rsync 0 Jun 11 17:34 abc5 -rw-r--r-- 1 rsync rsync 13 Jun 12 16:41 abc6 drwxr-xr-x 2 root root 6 Jun 12 16:42 test 在node4服务器查看数据是否同步正常 [root@node4 backup]# ll total 8 -rw------- 1 rsync rsync 5 Jun 12 16:40 abc1 -rw------- 1 rsync rsync 0 Jun 12 16:40 abc2 -rw------- 1 rsync rsync 0 Jun 12 16:40 abc3 -rw------- 1 rsync rsync 0 Jun 12 16:40 abc5 -rw-r--r-- 1 rsync rsync 13 Jun 12 16:41 abc6 drwx------ 2 rsync rsync 6 Jun 12 16:42 test


浙公网安备 33010602011771号