使用lsyncd来完成实时同步文件

0    48    1

👉 本文共约3121个字,系统预计阅读时间或需12分钟。

实际上 Lsyncd 就是对 inotifyrsync 工具的一个二次封装,只是简化使用操作而已!

使用lsyncd来完成实时同步

使用lsyncd来完成实时同步


1. 工具简介

使用我能够帮你干一些什么事情呢?

  • [1] 功能和特性

最开始我们先介绍一下该工具的功能和特性,对以后使用做一个基础说明。Lsyncd 工具 使用文件系统事件接口 inotifyfsevents 来监视对本地文件和目录的更改,在很短的时间内 Lsyncd 将这些事件整理,然后生成一个或多个进程以将更改的内容同步到远程文件系统中,默认的同步方法是使用 rsync 工具。Lsyncd 对于将数据从安全区域同步到不太安全的区域特别有用。

Lsyncd 是一种轻量级的实时镜像解决方案,其安装相对容易,且不需要新的文件系统或块设备的支持。同时,Lysncd 同步的时候还不会妨碍本地文件系统的运转。

作为 rsync 的替代方案,Lsyncd 还可以通过 rsync+ssh 方式推送文件。当文件或目录重命名或移动到本地树中的新位置时,rsync+ssh 可以更加高效的同步。相反,使用 rsync 则通过删除旧文件然后重新传输整个文件来执行移动。

可以通过配置文件实现细粒度的自定义。自定义操作配置甚至可以从头开始编写,从 shell 脚本到用 Lua 语言编写的代码。因此,简单,强大和灵活的配置是可能的。需要注意的是,在 Lsyncd2.2 的版本中要求同步双方的主机上的 rsync 版本不低于 3.1 方可正常使用。

  • [2] 替代的方案

当然,同步工具很有很多种,且功能和适用性上都各有不同。如果要同步数据库,我们可以选择 DRBD 工具,因为它在块设备级别上运行且非常适合用于同步负载较重的系统。而 Mirror 工具 是一种异步同步的工具,它像 Lsyncd 一样使用 inotify 作为事件通知。但是,其主要区别在于是专门为 master-master 的使用方式而开发的,因此在两个系统上运行守护进程,使用自己的传输层而不是 rsync 工具。

  • [3] 获取并编译


2. 使用方式

你应该怎么使用我来完成工作呢?

  • [1] 在测试时使用

  • [2] 本地文件之间的同步

  • [3] 本地文件同步到远程 - rsync

  • [4] 本地文件同步到远程 - ssh

  • [5] 可以同时同步多个文件路径


3. 全局设置 - settings

如何更好地让我配合你的工作呢?

Lsyncd 的配置文件遵从 Lua 的语法格式,它的设计简单而有效,有非常多的配置选项。为了更改更好地满足不同用户的使用需求,可以在不同的层上完成 Lsyncd 的配置。较低的层增加了适应性,同时界面变得更具吸引力。

配置文件分为四个层级,越往下越底层,如需更加具体的操作可以向下配置,如自定义同步行为等方式。我们这里只介绍全局配置和默认配置,其他可以参见官方文档

  • [1] 全局设置

  • [2] 参数说明
参数名称对应值解释说明
logfileFILENAME日志输出信息存储到此文件
pidfileFILENAME程序运行的 PID 存储到此文件
nodaemonBOOL将不会作为为守护程序运行
statusFileFILENAME定期将状态报告写入此文件
statusIntervalNUMBER在多少秒过后将状态写入文件,默认为10s
logfacilitySTRING日志类型,默认格式为user
logidentSTRING日志标识,默认为lsyncd
insistBOOL及时由于之前无法访问导致失败但启动时会继续运行
inotifyModeSTRING设置操作系统侦听的事件类型
maxProcessesNUMBER指定同步产生的进程数量

注释:事件类型主要有Modify/CloseWrite/CloseWrite or Modify三种


4. 默认配置 - sync

如何更好地让我配合你的工作呢?

这一次就是使用 Lsyncd 工具主要需要个性化配置的文件,其中最基础的同步模式主要有三种,分别是 rsyncrsyncsshdirect

本人提供Oracle、MySQL、PG等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!
  • [1] default.rsync

  • [2] default.rsyncssh

  • [3] default.direct

参考

https://www.escapelife.site/posts/d5e421c4.html

标签:

头像

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

16 + 5 =

 

嘿,我是小麦,需要帮助随时找我哦
  • 18509239930
  • 个人微信

  • 麦老师QQ聊天
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部
返回顶部