Lsyncd的配置文件是有效的lua语法,当然也支持lua编程,当然那是比较高级的用法了后面在简绍。先介绍基础的配置。
Lsyncd的配置主要分两种:全局配置和局部配置
由 settings { } 包括的内容都属全局配置,例如:
settiings 是lsyncd的内置函数,{ }中的内容是传递的参数。是lua中函数的一种调用方式的简写,全写是这样:settings()
下面看一下都有哪些设定参数:
pidfile
文件记录lsyncd当前进程id值,
如果没有pid文件,那么则可以启动多个lsyncd进程,这会导致多个lsyncd进程同时运行造成同步的数据混乱。
如果设置了pid文件,同时只能启动一个lsyncd进程。避免多个lsyncd进程导致同步混乱的情况,pid文件一定要设置。
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事件
Insist
默认情况下,当启动lsyncd失败时,Lsyncd会结束允许并显示一条错误消息。开启了容错模式以后,lsyncd并不会因为某个配置的错误导致启动失败,而是记录错误日志并忽略错误配置继续允许。
maxProcesses
lsyncd会产生一个子进程去运行sync任务,多个sync的时候,lsyncd会产生多个子进程并发运行sync任务,但最多不会超过maxProcesses的值。
maxDelays
累计到多少所监控的事件激活一次同步,即使后面的sync配置的delay延迟时间还未到
好了,全局配置介绍完了,我们写一个配置文件简单测试一下。Lsyncd的默认配置文件是 /etc/lsyncd.conf,编辑这个文件写我们的配置
--表示lua中的注释
sync 同步配置
default.direct :本地目录间同步,使用cp、rm等命令完成差异文件备份
source 同步的源目录,使用绝对路径
target 目标目录, 使用绝对路径
创建源目录,并启动lsyncd
日志模式设置为all,不然日志输出内容不全。
启动成功, 在源目录中创建文件,看看会不会同步到目标目录中
同步成功,看下日志里面都有什么
可以看到 监听了文件创建事件, 文件属性事件,文件修改事件,这也证明了CloseWrite事件并不是单一事件,而是包含了很多inotify事件
下期我们讲解 lsyncd中最重要的配置 sync同步配置。
个人用户或小企业用户,没有运维怎么办?
旗鱼云梯, 专业的SAAS化服务器集群管理云平台, 免费的运维服务专业的技术, 您值得的拥有.
旗鱼云梯 https://www.qyyt.com/?uuid=nEmfUCsJA7cW
领取专属 10元无门槛券
私享最新 技术干货