原文:https://www.jisai.net.cn/articles/centos7-install-lsyncd-rsync-synchronization.html
文章目录
lsyncd配置简单灵活,在同步海量小文件时,性能表现优异, 下面为大家介绍如何部署lsyncd+rsync实现服务器文件实时同步
实验环境:
CentOS 7.6 最小化安装
需求及网络拓扑图如下
A(192.168.123.100):Rsync客户端+lsyncd
B(192.168.123.200):Rsync服务端(daemon模式)
需求:
当A服务器中的文件发生变化(新增、修改、删除),实时推动到B服务器
实现思路:
A中部署Rsync客户端+lsyncd,lsyncd通过内核的inotify触发机制监控文件的动向,并将改动发送给Rsync,由Rsync同步到服务器B;服务器B以守护进程的方式部署Rsync服务端,接收A发来的文件同步请求,并将文件同步!
一、安装Rsync
在A服务和B服务器执行以下命令安装Rsync
二、安装lsyncd
CentOS 7自带的yum无法安装lsyncd。可以通过安装EPEL存储库的方式再用yum安装lsyncd,命令如下:
接着执行以下命令即可直接安装lsyncd
注:
lsyncd 只需要在A服务器上安装,B服务器无需安装
三、配置Rsync
A服务器为Rsync客户端,安装完成即可,B服务器以daemon方式运行,所以只需要对B服务器的Rsync进行配置
1、修改配置文件:
将配置文件修改如下:
:wq 保存退出
修改前:
修改后:
2、创建用户组和用户
3、创建同步目录并授予权限
4、创建认证用户和密码文件并修改权限
Rsync进行同步需要一个同步的虚拟用户,这个用户的用户名已经在配置文件里指定,下面创建这个用户名的用户密码文件
由于是用户名和密码文件所以必须要将其修改为600权限,不然后期会报错无法认证
5、启动Rsync
6、验证Rsync是否启动
我们可以通过查看Rsync监听端口(Rsync默认监听873端口),或者查看日志文件以确定Rsync是否以daemon模式成功启动
或者
如图,即Rsync已成功启动
至此,服务器B端的操作,已经结束
7、测试Rsync
服务器A需要创建相应的密码认证文件用于用户自动认证
由于也是密码文件,所以也需要将文件权限修改为600
由于服务端路径存在权限问题,所以同步源(Rsync客户端)也需要进行相同权限设置
下面进行创建用户(组)、目录、创建测试文件并赋予其权限
目录文件权限如下
关闭两台服务器的防火墙
下面进行测试
将A服务器/data/ 目录下的文件同步到B服务器
注:
- 两个冒号
- /data 服务器A的数据源路径
- data是模块名称,配置文件里已写明
- rsync@192.168.123.200 认证用户名@被同步的服务器IP,这里是B服务器的IP
如图,即表示成功
8、检测传输
查看B服务器的/data目录
如图,文件已同步
四、配置lsyncd
1、修改配置文件
删除原有内容并键入以下内容
修改前:
修改后:
注:lsyncd的配置文件是lua语法,注释方式为:“--”
2、启动lsyncd
或者
如图,即表示启动成功
或者
3、测试
修改/data 目录下的任意文件,保存,查看B服务器是否同步
服务器A
服务器B
如图,内容成功同步,实验成功,撒花!!!!
注:
-
文件权限一定一致
-
Rsync运行需要系统用户,认证需要Rsync虚拟用户,注意两个用户的区别
-
如果有报错,注意查看日志文件检测运行状态
原创文章。发布者:汲赛,转载请注明出处:https://www.jisai.net.cn/articles/centos7-install-lsyncd-rsync-synchronization.html