1、lsyncd基于rsync,且要求rsync >= 3.1,可输入rsync -v查看当前版本,如果不符合要求,可以升级rsync版本,两台服务器A/B均要安装rsync。
#查看当前rsync版本
rsync -v
#如果版本太低,直接卸载
yum -y remove rsync
#下载rsync源码
wget https://download.samba.org/pub/rsync/rsync-3.1.2.tar.gz
#解压
tar -zxvf rsync-3.1.2.tar.gz
#进入目录
cd rsync-3.1.2
#编译安装
./configure
make install
#查看是否升级成功
rsync -v
2、设置密钥登录
如果想要将A的数据同步到B,A必须拥有免密码登录B的权限,可以设置密钥登录来完成。只需要两条命令即可,下面的命令在A服务器执行:
#A生成密钥文件
ssh-keygen -t rsa
#将公钥拷贝到B
ssh-copy-id username@remote-server
#测试
ssh username@remote-server
username为B服务器用户名,remote-server为B服务器IP地址,如果服务器不是使用的22作为SSH端口,需要-p参数指定端口号
3、安装epel仓库
CentOS 7内置的源并没有包括Lsyncd,可以自行编译安装Lsyncd,不过更简单的办法是先安装epel源,就可以直接yum安装了,以下命令再A服务器执行。
yum -y install epel-release
4、安装lsyncd并配置
如果已经安装了epel仓库,直接输入下面的命令安装lsyncd即可,一下命令在A服务器执行。
#安装lsyncd
yum -y install lsyncd
#查看lsyncd版本
lsyncd --version
5、修改配置文件
vim /etc/lsyncd.conf
settings {
logfile = "/var/log/lsyncd/lsyncd.log",
statusFile = "/var/log/lsyncd/lsyncd.status",
inotifyMode = "CloseWrite or Modify",
maxProcesses = 10,
maxDelays = 1,
}
sync {
default.rsync,
source = "/home/mongodb/dump", --需同步的目录
target = "rsync_backup@192.168.15.210::0-160", --目标主机和待同步的目录
delay = 1,
rsync = {
binary = "/usr/bin/rsync",
password_file = "/etc/rsyncd.passwd",
archive = true,
compress = true,
verbose = true
}
}
继续输入命令lsyncd -nodaemon /etc/lsyncd.conf运行查看下是否有报错,如果有报错根据报错情况检查修改,如果没有报错直接退出后输入命令:systemctl start lsyncd启动lsyncd即可
6、配置B上的rsync
centos7上自带rsync,不需要再下载安装
vim /etc/rsyncd.conf
port=873
address=192.168.15.210
log file=/var/log/rsyncd.log
pid file=/var/run/rsyncd.pid
read only = no
use chroot = true
timeout = 300
max connections = 4
list = true
dont compress = *.gz *.bz2 *.tgz *.zip *.rar *.z
auth users = rsync_backup
secrets file = /etc/rsyncd.passwd
uid = root
gid = root
[15-177]
path = /data2/15-177/yapi/
hosts allow = 192.168.15.177
创建同步文件存放的目录
mkdir /data2/15-177/yapi/
创建密码文件
vim /etc/rsyncd.passwd
rsync:123456
为了密码的安全性,要把密码文件权限设为600
chmod +x 600 /etc/rsyncd.passwd
启动rsync
/etc/init.d/rsyncd start