Linux数据实时同步(sersync+rsync)
2020-06-07 05:22
363 查看
需求: 将Master(175)/var/ftp/pub/的目录文件实时备份到Slave(176)/backup/目录下 环境: OEL7.2 Master(192.168.1.175) Slave(192.168.1.176) 说明: Rsync可以远程同步,支持本地复制,实时同步需要借助第三方工具sersync/inotify Sersync可以记录下被监听目录中发生变化的(包括增加、删除、修改)具体某一个文件或者某一个目录的名字,然后使用rsync同步的时候 Inotify只能记录下被监听的目录发生了变化(增,删,改)并没有把具体是哪个文件或者哪个目录发生了变化记录下来 步骤: 一、Slave服务器配置 1.在Slave服务器上安装Rsync [root@slave ~]# yum -y install rsync 2.在Slave服务器上配置rsync [root@slave ~]# vim /etc/rsyncd.conf uid = root gid = root use chroot = no max connections = 36000 timeout = 600 pid file =/var/run/rsyncd.pid lock file =/var/run/rsync.lock log file = /var/log/rsyncd.log ignore errors = no read only = no list = no hosts allow = 192.168.3.175 hosts deny = * auth users = rsync_backup secrets file =/etc/rsync.password [backup] path = /backup/sersync/ 配置注解: uid:指定传输文件时的用户 gid:指定传输文件时的组 use chroot true|false:表示在传输文件前首先chroot到path参数所指定的目录下,可以实现安全防护,但缺点是需要以root权限,并且不能备份指向外部的符号连接所指向的目录文件,默认情况下chroot值为true max connections:指定最大的连接数,默认是0,即没有限制 read only ture|false:如果为true,则不能上传到该模块指定的路径下 list:表示当用户查询该服务器上的可用模块时,该模块是否被列出,true为列出,false为隐藏 auth users:指定传输时要使用的用户名 secrets file:指定密码文件,注意该密码文件的权限一定要是600,格式:用户名:密码 hosts allow:是允许同步的主机,可以是IP或者网段,如果是多个中间用空格隔开 hosts deny:拒绝同步的主机,可以是IP或者网段,如果是多个中间用空格隔开 [backup]:同步的模块名 path:同步的路径 3.创建同步的用户与密码的文件,即rsyncd.conf中secrets file这个配置选项中的文件/etc/rsync.passwd,同进要设置rsync.password的权限为600 [root@slave ~]# echo "rsync_backup:123456" >/etc/rsync.password [root@slave ~]# chmod 600 /etc/rsync.password 4.创建同步的目录:即rsyncd.conf中path配置选项中的目录 [root@slave ~]# mkdir -p /backup/sersync 5.启动守护进程,并写入开机自启动 [root@slave ~]# rsync --daemon --config=/etc/rsyncd.conf [root@slave ~]# echo "rsync --daemon --config=/etc/rsyncd.conf" >>/etc/rc.local [root@slave ~]# chmod +x /etc/rc.d/rc.local [root@slave ~]# tail -1 /etc/rc.local [root@slave ~]# reboot [root@slave ~]# systemctl status rc-local.service [root@slave ~]# netstat -ntlp | grep rsync 二、Master服务器配置 1.在Master安装rsync [root@master ~]# yum -y install rsync 2.首先创建master端的密码验证文件,同进要设置rsync.password的权限为600 [root@master ~]# echo 50000000 >/proc/sys/fs/inotify/max_user_watches [root@master ~]# echo 327679 >/proc/sys/fs/inotify/max_queued_events [root@master ~]# echo "123456" >/etc/rsync.password [root@master ~]# chmod 600 /etc/rsync.password 3.测试rsync [root@master ~]# rsync -avzP /var/ftp/pub/sersync/ rsync_backup@192.168.1.176::backup --password-file=/etc/rsync.password 4.部署sersync,下载地址https://raw.githubusercontent.com/orangle/sersync/master/release/sersync2.5.4_64bit_binary_stable_final.tar.gz [root@master ~]# mkdir /usr/local/sersync/ [root@master ~]# mkdir /usr/local/sersync/bin [root@master ~]# mkdir /usr/local/sersync/conf [root@master ~]# mkdir /usr/local/sersync/logs [root@master sersync]# wget https://raw.githubusercontent.com/orangle/sersync/master/release/sersync2.5.4_64bit_binary_stable_final.tar.gz [root@master sersync]# tar xvf sersync2.5.4_64bit_binary_stable_final.tar.gz [root@master sersync]# mv GNU-Linux-x86/sersync2 ./bin/sersync [root@master sersync]# mv GNU-Linux-x86/confxml.xml ./conf/ [root@master conf]# cp confxml.xml confxml.xml.bak [root@master sersync]# tree sersync 5.修改config.xml文件,建议拷贝一份在修改,需要把监控的目录数据同步到master指定的模块下,前面写了slave的模块名是backup对应的目录是:/backup/ [root@master sersync]# vim conf/confxml.xml 如果系统linux7以上,需要将xfs="false"修改成xfs="true",否则sersync无法递归监控 <fileSystem xfs="true"/> <localpath watch="/var/ftp/pub/sersync"> <remote ip="192.168.1.176" name="backup"/> </localpath> 指定rsync的虚拟用户和密码文件路径 <rsync> <commonParams params="-artuz"/> <auth start="true" users="rsync_backup" passwordfile="/etc/rsync.password"/> <userDefinedPort start="false" port="874"/><!-- port=874 --> <timeout start="false" time="100"/><!-- timeout=100 --> <ssh start="false"/> </rsync> [root@master sersync]# echo "export PATH=$PATH:/usr/local/sersync/bin/" >>/etc/profile [root@master sersync]# source /etc/profile [root@master sersync]# which sersync 6.启动sersync [root@master sersync]# sersync -d -r -o /usr/local/sersync/conf/confxml.xml 参数注解: -d:启用守护进程模式 -r:在监控前,将监控目录与远程主机用rsync命令推送一遍 -o:指定配置文件,默认使用confxml.xml文件 7.测试同步,在master服务器需要同步的目录下创建文件及目录 [root@master sersync]# cd /var/ftp/pub/sersync/ [root@master sersync]# touch {1..100} [root@master sersync]# mkdir note [root@slave backup]# ls 8.加入开机启动项,重启服务器查看 [root@master ~]# ln -s /usr/local/sersync/bin/sersync /usr/local/bin/sersync [root@master ~]# echo "sersync -d -r -o /usr/local/sersync/conf/confxml.xml" >>/etc/rc.local [root@master ~]# chmod +x /etc/rc.d/rc.local [root@master ~]# systemctl status rc-local.service [root@master ~]# tail -1 /etc/rc.local [root@slave ~]# reboot 9.加入开机启动后测试同步,在master增加、删除、修改文件及目录,查看slave是否实时同步 [root@master sersync]# cd /var/ftp/pub/sersync/ [root@master sersync]# touch {1..100} [root@master sersync]# mkdir note [root@master sersync]# rm -rf ./* [root@slave backup]# ls 实时同步已测试成功,如有错误请各位大神指出。
相关文章推荐
- Linux下Rsync+sersync实现数据双向实时同步
- linux系统安装rsync和sersync实现数据实时同步详细步骤(rsync实时同步)
- linux系统安装rsync和sersync实现数据实时同步详细步骤(rsync实时同步)
- Linux下Rsync+sersync实现数据实时同步[转]
- Linux下Rsync+sersync实现数据实时同步
- linux系统安装rsync和sersync实现数据实时同步详细步骤(rsync实时同步)
- Linux下Rsync+sersync实现数据实时同步
- Rsync+sersync实现数据实时同步(Linux环境)
- Linux-非结构化数据同步-Linux下Sersync+Rsync实现非结构化增量差异数据的实时同步3
- Linux下Rsync+sersync实现数据实时同步
- Linux下Rsync+sersync实现数据实时同步
- Linux下Rsync+Inotify-tools实现数据实时同步
- sersync基于rsync+inotify实现数据实时同步
- sersync:基于 rsync + inotify 实现数据实时同步
- Sersync+Rsync实现服务器数据实时同步及xml高级配置!
- Linux下Rsync+Inotify-tools实现数据实时同步
- Linux学习--rsync+inotify实现数据实时同步
- sersync:基于 rsync + inotify 实现数据实时同步
- linux centos7 rsync+sersync实现数据实时同步
- sersync:基于 rsync + inotify 实现数据实时同步