有两种方式:
第一种:使用sersync进行数据实时同步
一:sersync介绍
sersync其实是利用inotify和rsync两种软件技术来实现数据实时同步功能的,inotify是用于监听sersync所在服务器上的文件变化,结合rsync软件来进行数据同步,将数据实时同步给客户端服务器
二:sersync工作过程
在同步主服务器上开启sersync,负责监听文件系统的变化,然后调用rsync命令把更新的文件同步到目标服务器上,主服务器上安装sersync软件,目标服务器上安装rsync服务
三:整体环境拓扑图
四:客户端安装配置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行
2,修改29-34行内容—认证
3、修改36-42行
八:开启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
按照要求指定某些目录不能同步
三,启动lrsyncd服务
systemctl start lsyncd
systemctl enable lsyncd
四,测试过程,就不继续了
服务器租用托管,机房租用托管,主机租用托管,https://www.e1idc.com