简介
Lsyncd使用文件系统事件接口(inotify或fsevents)来监视对本地文件和目录的更改。Lsyncd将这些事件整理几秒钟,然后生成一个或多个进程以将更改同步到远程文件系统。默认同步方法是rsync
Lsyncd是一种轻量级的实时镜像解决方案。Lsyncd相对容易安装,不需要新的文件系统或块设备。Lysncd不会妨碍本地文件系统性能
可以通过配置文件实现细粒度的自定义。自定义操作配置甚至可以从头开始编写,从shell脚本到用Lua语言编写的代码
版本要求
Lsyncd 2.2.1要求所有源和目标计算机上的rsync> = 3.1
安装
apt-get install lsyncd
启动
service lsyncd start
配置
配置文件说明 /etc/lsyncd.conf
lsyncd配置文件使用lua语法编写
settings
settings {
logfile 日志文件
pidfile pid文件
nodaemon 表示不启用守护模式,默认
statusFile 运行状态文件
statusInterval 将lsyncd的状态写入上面的statusFile的间隔,默认10秒
inotifyMode 指定inotify监控的事件,默认是CloseWrite,还可以是Modify或CloseWrite or Modify
maxProcesses 最大进程数
maxDelays 累计多少监控事件同步一次,即使delay时间未到也同步
}
以下是三种常用配置案例
1.远程同步rsyncssh模式配置方案:
vim /etc/lsyncd.conf
settings {
logfile = "/var/log/lsyncd.log", --日志路径
statusFile = "/var/log/lsyncd.status", --状态文件
pidfile = "/var/run/lsyncd.pid", --pid文件路径
statusInterval = 1, --状态文件写入最短时间
nodaemon = false, --daemon运行
maxProcesses = 1, --最大进程
maxDelays = 1, --最大延迟
}
sync {
default.rsyncssh, --默认rsync+ssh,rsync版本需要升级3以上版本
source = "/apps/www/renwoleblog/", --源目录
delete = true, --保持完全同步
host = "[email protected]",
targetdir = "/apps/www/renwoleblog/bak/", --目标目录
exclude={
".txt" --需排除的文件
},
rsync = {
binary = "/usr/bin/rsync", --需先安装好rsync
archive = true, --归档
compress = false, --压缩
owner = true, --属主
perms = true, --权限
whole_file = false
},
ssh = {
port = 22
}
}
2.本地目录同步配置方案:
sync {
default.rsync,
source = "/apps/www/renwoleblog/",
target = "/apps/www/renwoleblog/bak/",
}
3.远程同步rsync-daemon模式配置方案
需要配置远程机:
/etc/rsyncd.conf
uid = root # 表示同步的文件所属用户
gid = root # 表示同步的文件所属用户组
use chroot = yes # 安全相关,表示在同步时,是否将同步目录转为根目录
max connections=0 # 允许客户端的最大连接数,0表示不限制
log file=/var/log/rsyncd/rsyncd.log
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsyncd.lock
[renwolecom] #模块名
path = /var/tmp/
read only = no
list = yes
# auth users = rsyncuser
# secrets file = /etc/rsync.pas
rsync --daemon #启动rsync 服务,以独立监听服务的方式(守护进程)运行
远程机配置完毕
sync {
default.rsync,
source = "/apps/www/renwoleblog/",
target = "[email protected]::renwolecom",
delete="true",
exclude = { ".bak*" },
delay = 30,
init = false,
rsync = {
binary = "/usr/bin/rsync",
archive = true,
compress = true,
verbose = true,
perms = true,
password_file = "/etc/rsync.password",
_extra = {"--bwlimit=200"}
}
}
重点参数说明:
-- # 注释符
settings # 是全局配置
sync # 定义同步参数
rsync # 定义同步文件参数
ssh # 定义服务器远程端口
lsyncd配置文件允许多个sync互不影响。
说明:如果是一对多,请参阅本地同步,修改目标目录即可。
使用命令加载配置文件,启动守护进程,自动同步目录操作
lsyncd -log Exec /etc/lsyncd.conf
本文为原创文章,版权归123ppp资源网所有,欢迎分享本文,转载请保留出处!