rsync+sersync实现文件双向同步

rsync+sersync实现文件双向同步

资源信息

服务器信息
系统:centos7.3
内核:3.10.0-514.el7.x86_64
selinux:关闭
iptables:开启

服务器 IP
rsync-1 192.168.157.3
rsync-2 192.168.157.4

软件包信息

软件包 版本
rsync rsync-3.1.2-10.el7.x86_64
sersync sersync2.5.4_64bit_binary_stable_final.tar.gz

简要说明

rsync
官网地址:https://rsync.samba.org/
官网最新版本:3.1.3
rsync是一个开源软件,提供了在类unix系统上的快速增量文件传输。
在文件传输过程中,rsync得益于自己的rsync算法,该算法通过扫描并计算出本地文件与远程文件之间的差异部分,仅将差异部分进行同步,这样尽可能的减少了同步时间。

rsync的功能点:

  • 可以更新整个文件目录结构和文件系统
  • 可以选择性的保留文件的软链接、硬链接、文件所有权、权限、设备、时间
  • 安装时不需要任何权限
  • 对于传输多个文件时,内部流水线减少了传输延迟
  • 可以使用rsh、ssh或sockets来进行传输
  • 支持匿名传输,这是镜像的常用选择

sersync
sersync2.5.4_64bit下载地址
sersync主要用于服务器同步,web镜像等功能。基于boost1.43.0,inotify api,rsync command.开发。目前常用的同步解决方案为rsync+inotify-tools和google的开源项目Openduckbill(依赖于inotify-tools),这两个都是基于脚本语言编写的。
sersync优点包括以下:

  • sersync使用c++语言开发,而且对linux系统 文件系统产生的临时文件和重复的文件操作进行过滤,所以在结合rsync同步的时候,节省了运行时耗和网络资源,速度更快。
  • sersync配置简单,其bin目录下已经有编译好的二进制文件sersync2,配合bin目录下的confxml.xml配置文件,可以直接使用。
  • sersync相对于inotify使用了多线程进程同步,尤其在同步较大文件时,能够保证多个服务器实时保持同步状态
  • 出错处理机制,通过失败队列对出错的文件重新同步
  • 自带crontab功能,在confxml.xml文件中配置开启即可按照时间段进行同步,而无需使用crontab
  • socket与http插件扩展,便于二次开发

sersync基于inotify开发,本质都是对目录,文件的监听,依赖于rsync进行文件同步。

sersync和inotify的区别与选择
sersync和inotify的区别详见该博主的博文https://www.xubaojin.com/post/35.html,简单明了。

安装配置

rsync

rsync的安装
在此使用centos自带的yum源进行安装

[root@rsync-1 ~]# rpm -qa | grep rsync
[root@rsync-1 ~]# yum install rsync -y
[root@rsync-1 ~]# rpm -qa | grep rsync
rsync-3.1.2-10.el7.x86_64

注:rsync-2同步安装

rsync的配置
因为是需要配合sersync进行使用的,需要将rsync配置为daemon方式运行。
一、修改rsync-1的配置文件/etc/rsyncd.conf

[root@rsync-1 ~]# cat /etc/rsyncd.conf
# /etc/rsyncd: configuration file for rsync daemon mode

# See rsyncd.conf man page for more options.

# configuration example:

uid = root      # 指定运行rsync daemon的用户
gid = root      # 指定运行rsync daemon的组
use chroot = no
address = 192.168.157.3 # 指定监听地址
port = 873      # 默认监听端口
max connections = 0     #最大连接数,0为无限制
pid file = /var/run/rsyncd.pid  # 指定pid文件
log file = /var/log/rsyncd.log # 指定日志文件
exclude = lost+found/   # 指定不同步的目录
ignore errors
#transfer logging = yes
#timeout = 900
#ignore nonreadable = yes
#dont compress   = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2

# [ftp]
#        path = /home/ftp
#        comment = ftp export area
[update]        # update模块
path = /root/updatedir  # update模块需要同步目录
comment = test rsync + sersync  # update模块的简要说明
read only = no  # 是否只读
list = no     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值