基于sersync实现实时同步

sersync是国人二次开发的一块同步软件。整合了rsync和inotify模块,可以记录下被监听目录中发生变化的(包括增加、删除、修改)具体某一个文件或某一个目录的名字;并使用rsync进行同步,在同步的时候,只同步发生变化的这个文件或者这个目录(每次发生变化的数据相对整个同步目录数据来说是很小的,rsync在遍历查找比对文件时,速度很快),因此,效率很高。

#下载包
git clone https://github.com/wsgzao/sersync.git

配置rsync

//安装nfs
[root@nfs ~]# yum install nfs-utils -y
 
//配置nfs
[root@nfs ~]# cat /etc/exports
/data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)
 
//创建目录
[root@nfs ~]#  mkdir -p /data
 
//创建用户
[root@nfs ~]# groupadd -g 666 www
[root@nfs ~]# useradd -u666 -g666 -M -s /sbin/nologin www
 
//授权
[root@nfs ~]# chown -R www.www /data
 
//重启nfs(restart)    下次开机自启 (enable)
[root@nfs ~]# systemctl restart nfs
[root@nfs ~]# systemctl enable nfs

配置sersync

//将下载好的二进制包直接解压
 
[root@clientb sersync]# ll
总用量 1772
-rwxr-xr-x 1 root root    2214 10月 26 2011 confxml.xml
-rwxr-xr-x 1 root root 1810128 10月 26 2011 sersync2
//编辑sersync配置文件
[root@clientb sersync]# vim confxml.xml 
[root@clientb data]# cat  /usr/local/sersync/confxml.xml 
 

    
    
//设置文件系统为xfs
    
    
    
    
    
    
    
//监视动作,全部选true,监控全部动作
    
    
    
    
    
    
    
    
    
    
 
    
//监控本地/data目录
    
//同步至172.16.1.202的data模块
        
        
        
    
    
//选择参数 avz
        
//认证开启,虚拟用户dhc,存放密码文件/etc/rsync.pass
        
        
//重传时间
        
        
    
    
    
        
        
        
        
    
    
    
 
    
      
    
        
        
    
    
 
    
    
        
    
    
    
    
        
        
        
    
    




//根据上面配置创建密码文件
 
[root@clientb data]# echo "123456" > /etc/rsync.pass
[root@clientb data]# chmod 600 /etc/rsync.pass



配置备份服务器

//安装rsync服务,和sersync配置保持一致性
[root@clientc ~]# yum install rsync -y
 
//配置rsync服务,要和sersync上的要求同步
[root@clientc ~]# vim /etc/rsyncd.conf
uid = www
gid = www
port = 873
fake super = yes
use chroot = no
max connections = 200
timeout = 600
ignore errors
read only = false
list = false
auth users = dhc
secrets file = /etc/rsync.passwd
log file = /var/log/rsyncd.log
#####################################
[backup]
comment = welcome to oldboyedu backup!
path = /backup
 
[data]
path = /data
 
//创建www用户--》
[root@clientc ~]# id www
uid=666(www) gid=666(www) groups=666(www)
 
[root@clientc ~]# mkdir /data
 
[root@clientc ~]# chown -R www.www /data
 
[root@clientc ~]# echo "dhc:123456" > /etc/rsync.passwd
 
[root@clientc ~]# chmod 600 /etc/rsync.passwd

运行sersync

[root@clientb data]# /usr/local/sersync/sersync2 -h  #查看帮助文档
set the system param
execute:echo 50000000 > /proc/sys/fs/inotify/max_user_watches
execute:echo 327679 > /proc/sys/fs/inotify/max_queued_events
parse the command param
_______________________________________________________
参数-d:启用守护进程模式
参数-r:在监控前,将监控目录与远程主机用rsync命令推送一遍
c参数-n: 指定开启守护线程的数量,默认为10个
参数-o:指定配置文件,默认使用confxml.xml文件
参数-m:单独启用其他模块,使用 -m refreshCDN 开启刷新CDN模块
参数-m:单独启用其他模块,使用 -m socket 开启socket模块
参数-m:单独启用其他模块,使用 -m http 开启http模块
不加-m参数,则默认执行同步程序
 
选择使用sersync命令
## 运行sersync程序,指定配置文件/usr/local/sersync/confxml.xml
[root@clientb data]# /usr/local/sersync/sersync2 -dro /usr/local/sersync/confxml.xml
##可以在下面的提示中选择实际运行的命令进行测试

测试:在web服务器上挂载

// 挂载nfs目录
[root@servera ~]# mount.nfs 172.16.1.201:/data /var/www/html/
 
[root@servera html]# df -h
Filesystem               Size  Used Avail Use% Mounted on
。
。
。
172.16.1.201:/data        17G  2.5G   15G  15% /var/www/html
 
//使用httpd上传文件,测试

你可能感兴趣的:(基于sersync实现实时同步)