搭建环境:
角色 | 系统 | 版本 | IP | hosts别名 |
---|---|---|---|---|
Master | CentOS | 7.0 | 192.168.0.116 | rsync00 |
Slavet | CentOS | 7.4 | 192.168.0.114 | rsync01 |
两台服务器都要执行的操作
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
禁用SElinux安全机制
setenforce 0
安装rsync
yum -y install rsync
添加本地dns解析
echo -e "192.168.0.116\trsync00\n192.168.0.117\trsync01" >> /etc/hosts
Slave 操作
修改 rsync配置文件
vim /etc/rsync.conf
uid = root
gid = root
port = 873
use chroot = no
max connections = 2000
timeout = 600
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
ignore errors
read only = false
list = false
hosts allow = rsync00
#hosts deny = 0.0.0.0/32
auth users = rsync
secrets file = /etc/rsync.pas
[www]
comment = www
path = /data/www/
创建用户认证文件
echo "rsync:123456">/etc/rsync.pas
chmod 600 /etc/rsync.pas
启动守护进程,加入开机自启
启动:
rsync --daemon
查看进程:
ps -ef | grep rsync
加入开机自启:
echo -e "/usr/bin/rsync --daemon" >> /etc/rc.local
Master上操作
mkdir /data/www -pv
echo "123456">/etc/rsync.pas
chmod 600 /etc/rsync.pas
touch /data/www/www.log
在Mater上执行同步
[root@localhost www]# rsync -avH --port=873 --progress --delete /data/www/ rsync@rsync00::www --password-file=/etc/rsync.pas
sending incremental file list
deleting M.txt
./
www.log
0 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=0/2)
sent 116 bytes received 55 bytes 342.00 bytes/sec
total size is 0 speedup is 0.00
显示结果和上面一样就是同步成功了,在Slave上看一下,会有www.log文件
查看内核是否支持inotify
[root@localhost www]# ll /proc/sys/fs/inotify
总用量 0
-rw-r--r--. 1 root root 0 4月 2 14:51 max_queued_events
-rw-r--r--. 1 root root 0 4月 2 14:51 max_user_instances
-rw-r--r--. 1 root root 0 4月 2 14:51 max_user_watches
vim /etc/sysctl.conf ,添加以下代码
#Slave上修改
fs.inotify.max_queued_events=99999999
fs.inotify.max_user_watches=99999999
fs.inotify.max_user_instances=65535
下载 sersync
需要才能下载,建议使用迅雷下载,或者点击此处 下载
安装sersync
#Master上操作
tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz
mv GNU-Linux-x86/ /usr/local/sersync
cd /usr/local/sersync/
cp confxml.xml confxml.xml_bak
修改配置文件
vim confxml.xml
#如果有多个同步模块,则按下面格式依次去写,仅更改
23 <sersync>
24 <localpath watch="/data/www">
25 <remote ip="rsync01" name="www"/>
26 <!--<remote ip="192.168.8.39" name="tongbu"/>-->
27 <!--<remote ip="192.168.8.40" name="tongbu"/>-->
28 </localpath>
29 <rsync>
30 <commonParams params="-artuz"/>
31 <auth start="true" users="rsync" passwordfile="/etc/rsync.pas"/>
32 <userDefinedPort start="false" port="874"/><!-- port=874 -->
33 <timeout start="false" time="100"/><!-- timeout=100 -->
34 <ssh start="false"/>
35 </rsync>
36 <failLog path="/tmp/rsync_fail_log.sh" timeToExecute="60"/><!--default every 60mins execute once-->
创建日志存放目录
mkdir /usr/local/sersync/logs/
touch /usr/local/sersync/logs/rsync_fail_log.sh
启动服务
/usr/local/sersync/sersync2 -d -r -o /usr/local/sersync/confxml.xml
添加到开机启动
echo -e " /usr/local/sersync/sersync2 -d -r -o /usr/local/sersync/confxml.xml" >> /etc/rc.local
配置多实例
#配置多实例只需对应不同的配置文件即可
/usr/local/sersync/sersync2 -d -o /usr/local/sersync/test1_confxml.xml
/usr/local/sersync/sersync2 -d -o /usr/local/sersync//test2_confxml.xml
/usr/local/sersync/sersync2 -d -o /usr/local/sersync//test3_confxml.xml