目标服务器 192.168.100.47

源服务器    192.168.100.46

目标服务器配置

[root@node01 nodejs]# cat /etc/rsyncd.conf
#日志文件
log file = /var/log/rsyncd.log
#pid文件
pidfile = /var/run/rsyncd.pid
#锁文件
lock file = /var/run/rsync.lock
#密码文件
secrets file = /etc/rsync.pass

#自定义一个名称,认证模块名
[nodejs]
#要同步的目录
path = /home/nodejs/
#注释,要与自定义名称一致
comment = nodejs
#设置rsync运行权限
uid = root
gid = root
#默认端口
port=873
#如果"use chroot"指定为true,那么rsync在传输文件以前首先chroot到path参数所指定的目录下。这样做的原因是实现额外的安全防护,但是缺点是需要以root权限,并且不能备份指向外部的符号连接所指向的目录文件。默认情况下chroot值为true.但是这个一般不需要,我选择no或false
use chroot = no
#是否允许可读可写
read only = no
#是否允许列表
list = no
#最大连接数
max connections = 200
#超时时间
timeout = 600
#认证的用户名
auth users = zmj
#允许访问的ip,可填写192.168.153.0/24
hosts allow = 192.168.100.0/24
#默认的,不要动了。
hosts deny = 0.0.0.0/32

 

 

源服务器配置

[root@master nodejs]# cat /etc/rsyncd.passwd
abc123

rsync -auv --password-file=/etc/rsyncd.passwd  /home/nodejs/ zmj@192.168.100.47::nodejs 

 

同步成功

 

sersync加入

源服务器配置

#安装sersync
http://sersync.sourceforge.net/ 软件官网
下载需要×××,我给上传到百度云了,欢迎下载。
链接:https://pan.baidu.com/s/1-NcvYkyWBb7k3Gln8KZxlA 密码:ovd9


[root@master sersync]# pwd
/usr/local/sersync
[root@master sersync]# ls
confxml.xml sersync2
[root@master sersync]#

 

vim confxml.xml

24     <sersync>
25         <localpath watch="/home/nodejs/">
26             <remote ip="192.168.100.47" name="nodejs"/>

32             <auth start="true" users="zmj" passwordfile="/etc/rsyncd.passwd"/>

 38         <crontab start="true" schedule="600"><!--600mins-->

参数说明:
localpath wath="/home/nodejs" #源服务器同步目录
<remote ip="192.168.100.47" name="nodejs"/> # 目标服务器ip,同步模块
<auth start="true" users="zmj" passwordfile="/etc/passwd.txt"/> # users="xx" #使用xx去同步
passwordfile="
/etc/rsyncd.passwd
" #使用的目标服务器密码文件为 start="true" schedule="600" 设置为true,每隔600分钟全盘同步一次

#设置开机启动
vim /etc/rc.d/rc.local
/usr/local/sersync/sersync2 -d -r -o  /usr/local/sersync/confxml.xml

#添加监控脚本
vim /home/check_sersync.sh
#!/bin/bash

sersync="/usr/local/sersync/sersync2"
confxml="/usr/local/sersync/confxml.xml"
status=$(ps aux|grep 'sersync2'|grep -v grep|wc -l)

if [[ $status -eq 0 ]]; then
    $sersync -d -r -o $confxml &
else
    exit 0;
fi

#添加执行权限
chmod +x /home/check_sersync.sh

#设置定时任务
crontab -e 
#每隔两分钟执行一次
*/2 * * * * /bin/bash /home/check_sersync.sh > /dev/null 2>&1 

测试同步

在源服务器上 /home/nodejs/ 下放置一个redis的安装包及解压包。

ls -l 
total 1628
drwxrwxr-x  6 root root    4096 Dec 18  2015 redis-3.0.6
-rw-r--r--  1 root root 1372648 May  8 17:52 redis-3.0.6.tar.gz
等两分钟以后去目标服务器 /home/nodejs 下查看文件是否正常同步。
正常同步,说明配置成功了。