首页 > 系统相关 >Linux数据实时同步(sersync+rsync)

Linux数据实时同步(sersync+rsync)

时间:2023-01-13 09:59:09浏览次数:36  
标签:rsync sersync local master Linux slave root

一、Slave服务器配置

1.在Slave服务器上安装Rsync


[root@slave ~]# rpm -ivh rsync-3.1.2-11.el7_9.x86_64.rpm
###rpm 自行下载

2.在Slave服务器上配置rsync

[root@slave ~]# vim /etc/rsyncd.conf

log file=/var/log/rsync.log
pid file=/var/run/rsyncd.pid
[server]
path=/root/test
use chroot=true
max connections=4
read only=no
list=true
uid=root                                                                      
gid=root
auth users=root
secrets file=/etc/rsync.password
hosts allow=X.X.X.X

# 配置注解:
# 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或者网段,如果是多个中间用空格隔开
# [server]:同步的模块名
# path:同步的路径

3.创建同步的用户与密码的文件

即rsyncd.conf中secrets file这个配置选项中的文件/etc/rsync.password,同进要设置rsync.password的权限为600

[root@slave ~]# echo "root:123456" >/etc/rsync.password
[root@slave ~]# chmod 600 /etc/rsync.password

4.创建同步的目录

即rsyncd.conf中path配置选项中的目录

[root@slave ~]# mkdir -p /root/test

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@slave ~]# rpm -ivh rsync-3.1.2-11.el7_9.x86_64.rpm

2.首先创建master端的密码验证文件,同进要设置rsync.password的权限为600

[root@master ~]# echo "123456" >/etc/rsync.password
[root@master ~]# chmod 600 /etc/rsync.password

4.部署sersync

[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 ~]# cd /usr/local/sersync
将sersync程序包导入此文件夹 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

5.修改config.xml文件,建议拷贝一份在修改,需要把监控的目录数据同步到master指定的模块下,前面写了slave的模块名是server对应的目录是:/server/

[root@master sersync]# vim conf/confxml.xml
# 如果系统linux7以上,需要将xfs="false"修改成xfs="true",否则sersync无法递归监控
<fileSystem xfs="true"/>
<localpath watch="/root/test">
	<remote ip="10.8.5.42" name="server"/>
</localpath>
# 指定rsync的虚拟用户和密码文件路径
<rsync>
	<commonParams params="-artuz"/>
	<auth start="true" users="root" 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 /root/gckj/
[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 /root/test/

[root@master sersync]# mkdir note

[root@slave backup]# ls
 

标签:rsync,sersync,local,master,Linux,slave,root
From: https://www.cnblogs.com/zhuyunbk/p/17048588.html

相关文章

  • Linux修改/etc/security/limits.conf不生效办法的一个临时解决办法
    故障是Linux出现"Toomanyopenfiles"错误。通过修改/etc/security/limits.conf,提高上限。但是使用ulimit-a显示修改并未生效。可以通过切换到其他用户,如切换到tomcat......
  • Linux 全面技术分析
    Linux全面技术分析Linux是基于Linux内核的开源类UNIX操作系统。创始人LinusTorvalds意识到,90年代初商业化的UNIX操作系统对于普通用户来说太贵了。这使他足够......
  • Linux学习笔记:curl命令
    一、介绍cURL,全称CommandLineURLviewer,是一个利用URL规则在命令行下工作的文件传输工具。其主要作用是通过http、ftp等方式下载文件,也能够上传文件,作为一个功能......
  • Linux学习笔记:shell sleep睡眠
    一、介绍在Linux的bash中,利用sleep和usleep命令可以控制睡眠时长,进行延时操作。sleep:默认以秒为单位usleep:默认以微秒为单位(1s=1000ms=1000000us)具体例......
  • linux 中下载 和安装curl
     001、下载curl:官网[root@PC1software]#wgethttps://curl.se/download/curl-7.61.0.tar.gz--no-check-certificate[root@PC1software]#lscurl-7.61.0.tar.gz......
  • linux 中非root用户安装R:configure: error: libcurl >= 7.28.0 library and headers a
     001、问题:configure:error:libcurl>=7.28.0libraryandheadersarerequiredwithsupportforhttps  002、解决方法:切回root,安装curl[root@PC1softw......
  • linux中普通用户安装R:configure: error: --with-readline=yes (default) and headers/
     001、问题configure:error:--with-readline=yes(default)andheaders/libsarenotavailable  002、解决方法a、切换回root用户[[email protected].......
  • linux 安装简洁的 zsh
    为什么要安装简洁的zshzsh是shell中的佼佼者,但是网上配置zsh的方案,千篇一律的都是配置的oh-my-zsh,个人感觉非常臃肿,配置低的话,用起来还会非常卡。安装zsh本文以......
  • 一文详解 Linux Crontab 调度任务
    最近接到这样一个任务:定期(每天、每月)向“特定服务器”传输“软件服务”的运营数据,因此这里涉及到一个定时任务,计划使用Python语言添加Crontab依赖写一个定时任务的脚本,......
  • Linux存储服务
    存储服务一、概述存储:用于存放用户上传的内容(数据),一般应用在网站集群中为什么要存储?如果不使用存储,用户上传的数据就直接存放在某一台网站服务器上了,用户下次访问就可......