0
点赞
收藏
分享

微信扫一扫

服务器做主动资源实时同步

精进的医生 2023-05-05 阅读 53

有两种方式:

第一种:使用sersync进行数据实时同步

一:sersync介绍

sersync其实是利用inotify和rsync两种软件技术来实现数据实时同步功能的,inotify是用于监听sersync所在服务器上的文件变化,结合rsync软件来进行数据同步,将数据实时同步给客户端服务器


二:sersync工作过程

在同步主服务器上开启sersync,负责监听文件系统的变化,然后调用rsync命令把更新的文件同步到目标服务器上,主服务器上安装sersync软件,目标服务器上安装rsync服务

三:整体环境拓扑图

服务器做主从资源实时同步_xml



四:客户端安装配置rsync服务

yum install rsync

编辑vim /etc/rsyncd.conf

##rsync config start

##created by root 2016-08-08 15:00

##rsync.conf config start

uid = nginx

gid = nginx

use chroot = no

timeout = 100

pid file = /var/run/rsyncd.pid

lock file = /var/run/rsync.lock

log file = /var/log/rsyncd.log

[backup]

path = /var/www/sdkback.10heroes.cn/

ignore errors

read only = false

list = false

hosts allow = 10.101.1.0/24

hosts deny = 0.0.0.0/32

auth users = rsync_backup

secrets file = /etc/rsync.password

exclude = storage

##rsync config end



添加用户

useradd rsync -s /sbin/nologin -M



改变目录权限

chown -R rsync.rsync /backup



配置密码文件权限

chmod 600 /etc/rsync.password



开启服务后台运行

systemctl start rsyncd

systemctl enable rsyncd



五:主服务器上配置密码文件

yum install -y rsync

echo "rsync.conf">>/etc/rsync.password

chmod 600 /etc/rsync.password

ls -ld /etc/rsync.password


六:测试手工同步

rsync -avzP /etc/hosts rsync_backup@10.101.1.2::backup --password-file=/etc/rsync.password


七:主服务器上安装sersync服务

wget http://down.whsir.com/downloads/sersync2.5.4_64bit_binary_stable_final.tar.gz

tar -zxvf sersync2.5.4_64bit_binary_stable_final.tar.gz -C /usr/local/

cd /usr/local/

mv GNU-Linux-x86 sersync

cd sersync

mkdir -p conf bin logs

mv confxml.xml conf

cd conf

cp confxml.xml confxml.xml.$(date +%F)

修改配置文件内容(confxml.xml)


1、修改24-28行

服务器做主从资源实时同步_服务器_02



2,修改29-34行内容—认证

服务器做主从资源实时同步_xml_03



3、修改36-42行

服务器做主从资源实时同步_数据_04




八:开启sersync守护进程


首先配置全局环境变量,使得后同可以直接调用sersync命令

echo 'export PATH=$PATH:/usr/local/sersync'>>/etc/profile

source /etc/profile

which sersync2

启动sersync服务
sersync2 -r -d -o /usr/local/sersync/conf/confxml.xml
-r初始化数据
-d后台启动
-o指定路径
如果需要将命令开启动,只需将命令去掉参数-r定入/etc/rc.local


第二种方式:通过rsync和lsyncd

客户端已经安装好rsync并且启动了,认证配置还是按照上面第一种方式那么来

一,主这边

yum install -y rsync lsyncd >/dev/null 2>&1
安装rsync服务和客户端yum安装


二,lrsyncd配置


编辑/etc/lsyncd.conf内容

----

-- User configuration file for lsyncd.

--

-- Simple example for default rsync, but executing moves through on the target.

--

-- For more examples, see /usr/share/doc/lsyncd*/examples/

--

-- sync{default.rsyncssh, source="/var/www/html", host="localhost", targetdir="/tmp/htmlcopy/"}


settings {

logfile = "/var/log/lsyncd/lsyncd.log",

statusFile = "/var/log/lsyncd/lsyncd-status.log",

statusInterval = 20

}


sync {

default.rsync,

target="rsync_backup@10.101.1.2::backup",

source="/var/www/sdkback.10heroes.cn",

delay = 30,

excludeFrom = "/etc/lsyncd/rsync_exclude.lst",

rsync = {

binary = "/usr/bin/rsync",

compress = true,

verbose = true,

archive = true,

owner = false,

group = false,

password_file="/etc/rsync.password",

_extra = {"--port=873"},

}

}


将以上内容写入到配置文件中
sysctl -w fs.inotify.max_user_watches="99999999"

echo 'fs.inotify.max_user_watches="99999999"' >> /etc/sysctl.conf
设置文件用户打开最大文件数的数值并写入到内核文件里

编辑/etc/lsyncd/rsync_exclude.lst

按照要求指定某些目录不能同步

服务器做主从资源实时同步_数据_05



三,启动lrsyncd服务

systemctl start lsyncd

systemctl enable lsyncd


四,测试过程,就不继续了





举报

相关推荐

0 条评论