Lsyncd的配置文件是有效的lua语法,当然也支持lua编程,当然那是比较高级的用法了后面在简绍。先介绍基础的配置。
Lsyncd的配置主要分两种:全局配置和局部配置
由 settings { } 包括的内容都属全局配置,例如:

settiings 是lsyncd的内置函数,{ }中的内容是传递的参数。是lua中函数的一种调用方式的简写,全写是这样:settings({a=1, b=2})

1. pidfile
文件记录lsyncd当前进程id值,
如果没有pid文件,那么则可以启动多个lsyncd进程,
这会导致多个lsyncd进程同时运行造成同步的数据混乱。
如果设置了pid文件,同时只能启动一个lsyncd进程。
避免多个lsyncd进程导致同步混乱的情况,pid文件一定要设置。
2. inotifyMode
指定lsyncd监控的事件,其值有:CloseWrite, Modify, CloseWrite or Modify
默认是CloseWrite。
官方文档写的是 inotify事件,其实是不对的
lsyncd事件是对inotify事件的包装,CloseWrite事件是lsyncd的事件。
我一直以为CloseWrite监听的是 文件写入关闭事件,
可为什么文件删除和创建也被lsyncd监听并同步了呢?
其实CloseWrite事件并不是单一事件而是包含了很多inotify事件,如下:
CloseWrite包含了以下inotify事件:
IN_ATTRIB 文件属性被修改,如 chmod、chown、touch 等
IN_CLOSE_WRITE 可写文件被 关闭
IN_CREATE创建新文件
IN_DELETE文件/目录已在监控目录中删除
IN_DELETE_SELF 监控的项目本身已删除
IN_MOVED_FROM 文件被移出监控目录,如 mv
IN_MOVED_TO 文件被移动到监控目录,如 mv、cp
IN_DONT_FOLLOW 不追踪符号链接的真实路径
IN_ONLYDIR; 仅监视目录
Modify是在CloseWrite的基础上增加了IN_MODIFY事件,并删除了IN_CLOSE_WRITE事件
IN_MODIFY 文件已被修改
CloseWrite or Modify 是在CloseWrite的基础上增加了IN_MODIFY事件
3. Insist
默认情况下,当启动lsyncd失败时,Lsyncd会结束允许并显示一条错误消息。
开启了容错模式以后,lsyncd并不会因为某个配置的错误导致启动失败,
而是记录错误日志并忽略错误配置继续允许。
4. maxProcesses
lsyncd会产生一个子进程去运行sync任务,
多个sync的时候,lsyncd会产生多个子进程并发运行sync任务,
但最多不会超过maxProcesses的值。
5. maxDelays
累计到多少所监控的事件激活一次同步,即使后面的sync配置的delay延迟时间还未到
好了,全局配置介绍完了,我们写一个配置文件简单测试一下。Lsyncd的默认配置文件是 /etc/lsyncd.conf,编辑这个文件写我们的配置

--表示lua中的注释
sync同步配置
default.direct :本地目录间同步,使用cp、rm等命令完成差异文件备份
source 同步的源目录,使用绝对路径
target 目标目录, 使用绝对路径
创建源目录,并启动lsyncd

日志模式设置为all,不然日志输出内容不全。
启动成功, 在源目录中创建文件,看看会不会同步到目标目录中


可以看到 监听了文件创建事件, 文件属性事件,文件修改事件,这也证明了CloseWrite事件并不是单一事件,而是包含了很多inotify事件
下期我们讲解 lsyncd中最重要的配置 sync同步配置。
个人用户或小企业用户,建站后没有运维怎么办?
旗鱼云梯, 专业的SAAS化服务器集群管理云平台, 免费的运维服务专业的技术, 您值得的拥有.
by 旗鱼云梯
网友评论