Lsyncd 工具
Lsyncd 使用文件系统事件接口(inotify 或 fsevents)来监视对本地文件和目录的更改
-
默认同步方法是 rsync
-
整理文件系统时事件性能好,会以1个或者多个进程同步到目标服务器的文件系统中
-
是一种轻量级的实时镜像解决方案
-
官网地址:https://lsyncd.github.io/lsyncd/
-
开源许可证:GPLv2 或任何更新的 GPL 版本
-
Lsyncd 旨在将缓慢变化的本地目录树同步到远程镜像。Lsyncd 对于将数据从安全区域同步到不太安全的区域特别有用
-
Lysncd 不会妨碍本地文件系统性能,可以通过配置文件实现细粒度的自定义
-
Lysncd 实际上是 Lua 语言封装了 inotify 和 rsync 工具
环境说明
Lsyncd 服务端
- 需要安装 Lsyncd 和 rsync
- centos 7.9 (注意内核版本要大于2.6.13)
- 需要同步的目录:/home/share
- 静态IP地址:192.168.204.52
客户端
- 安装 rsync
- centos 7.9 (注意内核版本要大于2.6.13)
- 备份文件的存放目录:/home/backups
- 静态IP地址:192.168.204.57
安装 rsync
###########两台都要安装###########
yum install -y rsync
配置 rsync daemon 服务
客户端需要配置 daemon 服务(文件同步过来存放的服务器)
- 配置文件如下
####/etc/rsyncd.conf文件内容####
transfer logging = yes
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
port = 873
address = 0.0.0.0
uid = 0
gid = 0
use chroot = yes
max connections = 100
timeout = 900
read only = no
ignore errors
auth users = rsync_backup
secrets file = /etc/rsyncd.pass
[backups]
comment = This is a backup test
path = /home/backups
-
创建备份文件存放目录:
mkdir /home/backups
-
配置账号密码文件(注意文件权限)
echo "rsync_backup:Test123456" >/etc/rsyncd.pass
chmod 600 /etc/rsyncd.pass
- 启动服务进程:
systemctl enable rsyncd --now
安装 Lsyncd
服务端操作:安装 Lsyncd 软件
#我是从这个地址直接搜索到 rpm 包进行下载的:https://pkgs.org/download/lsyncd
#下载好了,将包放在服务器上直接安装即可
wget https://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/l/lsyncd-2.2.2-1.el7.x86_64.rpm
#安装
rpm -ivh lsyncd-2.2.2-1.el7.x86_64.rpm
配置 Lsyncd
- 配置文件默认在
/etc/lsyncd.conf
###############配置文件主要内容参考###############
###############全局配置 settings{}块###############
#定义日志文件
logfile
#定义状态文件
statusFile
#定义进程pid文件
pidfile
#指定inotify监控的事件,默认是CloseWrite,还可以是Modify或CloseWrite or Modify
inotifyMode
#指定同步进程最大数
maxProcesses
#守护模式的启用
nodaemon
#设置累计到多少次监听的事件进行一次同步
maxDelays
#默认值
inist
###############sync配置 sync{}块###############
#模式选择,支持rsync、rsyncssh、direct三种模式
default.rsync
#待同步的源目录
source
#同步过去的目的地址
target
#只同步进程启动以后发生改动事件的文件,原有的目录即使有差异也不会同步,默认 true
init
#累计事件数量,等待rsync同步延时时间,默认15秒
delay
#排除列表
excludeFrom
#设置是否同步删除
delete
###############rsync配置 rsync = {}块###############
#带宽限速,单位kb/s
bwlimit
#可执行程序地址,默认/usr/bin/rsync
binary
#以递归方式传输文件,并保持所有文件属性
archive
#压缩传输模式开关
compress
#同步详细输出
verbose
- 演示的配置文件示例:
settings {
logfile = "/var/log/lsyncd.log",
statusFile = "/var/log/lsyncd.status",
insist = true,
statusInterval = 10
}
sync {
default.rsync,
source = "/home/share",
target = "rsync_backup@192.168.204.57::backups",
delete = true,
delay = 1,
maxDelays = 1,
rsync = {
binary = "/usr/bin/rsync",
archive = true,
compress = true,
verbose = false,
password_file = "/home/rsync.passwd",
}
}
- 服务端准备密码文件
echo "Test123456" >/home/rsync.passwd
chmod 600 /home/rsync.passwd
启动服务验证同步
- 在服务端启动 Lsyncd 程序
systemctl enable lsyncd --now
- 上传一些文件,看一下同步效果:同步正常
文章来源:https://www.toymoban.com/news/detail-793342.html
本文参考了博客地址:带你去流浪的博客 (cnblogs.com),博文中有有更详细的应用场景和示例文章来源地址https://www.toymoban.com/news/detail-793342.html
到了这里,关于Rsync 文件同步(四):实时同步 Rsync + Lsyncd的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!