本文作者: 五行哥

QQ: 1226032602

E-mail: 1226032602@qq.com

官方文档

https://axkibe.github.io/lsyncd/

https://github.com/axkibe/lsyncd

简介

Lsyncd使用文件系统事件接口(inotify或fsevents)来监视对本地文件和目录的更改。Lsyncd将这些事件整理几秒钟,然后生成一个或多个进程以将更改同步到远程文件系统。默认同步方法是rsync

Lsyncd是一种轻量级的实时镜像解决方案。Lsyncd相对容易安装,不需要新的文件系统或块设备。Lysncd不会妨碍本地文件系统性能

可以通过配置文件实现细粒度的自定义。自定义操作配置甚至可以从头开始编写,从shell脚本到用Lua语言编写的代码

版本要求

Lsyncd 2.2.1要求所有源和目标计算机上的rsync> = 3.1

安装

lsyncd 在 epel源中

yum install lsyncd

配置

配置文件说明 /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时间未到也同步
}

sync 三种模式

default.rsync

sync {
default.rsync,
source = "/tmp/src",
target = "172.29.88.223:/tmp/dest",
maxDelays = 5,
delay = 30,
-- init = true,
rsync = {
binary = "/usr/bin/rsync",
archive = true,
compress = true,
bwlimit = 2000
rsh = "/usr/bin/ssh -p 22 -o StrictHostKeyChecking=no"
}
}

rsync daemon

sync {
default.rsync,
source = "/tmp/src",
target = "rsync_backup@172.16.1.41::backup",
delete="running",
exclude = { ".*", ".tmp" },
delay = 3,
init = false,
rsync = {
binary = "/usr/bin/rsync",
archive = true,
compress = true,
verbose = true,
password_file = "/etc/rsync.pwd",
_extra = {"--bwlimit=200"}
}
}

default.rsyncssh

sync {
default.rsyncssh,
source="/srcdir",
host="remotehost",
excludeFrom="/etc/lsyncd.exclude",
targetdir="/dstdir",
rsync = {
archive = true,
compress = false,
whole_file = false
},
ssh = {
port = 1234
}
}

default.direct

sync {
default.direct,
source = "/home/user/src/",
target = "/home/user/trg/"
}

/etc/lsyncd.conf

settings {
logfile = "/var/log/lsyncd/lsyncd.log",
statusFile = "/var/log/lsyncd/lsyncd.status",
inotifyMode = "CloseWrite",
maxProcesses = 8,
}
sync {
default.rsync,
source = "/tmp/src",
target = "rsync_backup@172.16.1.41::backup",
delete="running",
exclude = { ".*", ".tmp" },
delay = 3,
init = false,
rsync = {
binary = "/usr/bin/rsync",
archive = true,
compress = true,
verbose = true,
password_file = "/etc/rsync.pwd",
_extra = {"--bwlimit=200"}
}
}
sync {
default.rsync,
source = "/tmp/src",
target = "rsync_backup@172.16.1.41::wuxing",
delete="running",
exclude = { ".*", ".tmp" },
delay = 3,
init = false,
rsync = {
binary = "/usr/bin/rsync",
archive = true,
compress = true,
verbose = true,
password_file = "/etc/rsync.pwd",
_extra = {"--bwlimit=200"}
}
}

delete

delete	=	true       #在目标上删除源中没有的内容。在启动时以及在正常操作期间删除的内容
delete = false #不会删除目标上的任何文件。不在启动时也不在正常操作上
delete = 'startup' # Lsyncd将在启动时删除目标上的文件,但不会在正常操作时删除
delete = 'running' # Lsyncd在启动时不会删除目标上的文件,但会删除正常操作期间删除的文件
settings {
logfile = "/var/log/lsyncd/lsyncd.log",
statusFile = "/var/log/lsyncd/lsyncd.status",
inotifyMode = "CloseWrite",
maxProcesses = 8,
}
sync {
default.rsync,
source = "/data",
target = "rsync_backup@backup::backup",
delete= true,
exclude = { ".*" },
delay = 1,
rsync = {
binary = "/usr/bin/rsync",
archive = true,
compress = true,
verbose = true,
password_file = "/etc/rsync.pwd",
_extra = {"--bwlimit=200"}
}
}

lsyncd-实时同步(镜像)守护程序的更多相关文章

  1. Lsyncd实时同步搭建指南

    linux文件实时同步: inotify+rsync.sersync.lsyncd工具比较 一.inotify + rsync 最近一直在寻求生产服务服务器上的同步替代方案,原先使用的是inotify ...

  2. Lsyncd搭建同步镜像-用Lsyncd实现本地和远程服务器之间实时同步

    Lysncd即Live Syncing Daemon,它是开源的数据实时同步工具(后台进程),基于inotify和rsync. lsyncd会密切监测本地服务器上的参照目录,当发现目录下有文件或目录变 ...

  3. lsyncd 实时同步

    1. 几大实时同步工具比较 1.1 inotify + rsync 最近一直在寻求生产服务服务器上的同步替代方案,原先使用的是inotify + rsync,但随着文件数量的增大到100W+,目录下的 ...

  4. lsyncd实时同步搭建指南——取代rsync+inotify

    1. 几大实时同步工具比较 1.1 inotify + rsync 最近一直在寻求生产服务服务器上的同步替代方案,原先使用的是inotify + rsync,但随着文件数量的增大到100W+,目录下的 ...

  5. lsyncd实时同步工具

    简介 Lysncd 实际上是lua语言封装了 inotify 和 rsync 工具,采用了 Linux 内核(2.6.13 及以后)里的 inotify 触发机制,然后通过rsync去差异同步,达到实 ...

  6. sersync/lsyncd实时同步

    第一章 sersync/lsync实时同步 1.1 实时同步服务原理/概念 1)需要部署好rsync守护进程服务,实现数据传输 2)需要部署好inotify服务,实现目录中数据变化监控 3)将rsyn ...

  7. 如何使用 lsyncd 实时同步并执行 shell 命令

    修改 lsyncd 的默认配置,不直接执行rsync 进行同步,而是改用自己的脚本. binary 指定我们的脚本 vim /usr/local/lsyncd/etc/lsyncd.conf sett ...

  8. lsyncd —— 多机器实时同步文件神器

    lsyncd 是一个支持实时.双向.多机器的多模式文件同步工具. 使用 Lua 语言封装了 inotify 和 rsync 工具,采用了 Linux 内核(2.6.13 及以后)里的 inotify ...

  9. lsyncd + rsync 实时同步搭建

    一.inotify和lsync inotify和lsyncd对比一下,发现虽然lsyncd没有inotify那么真正的实时同步,但是lsyncd的同步基本上可以满足基本实时同步的要求,而且lsyncd ...

  10. 实时同步lsyncd

    实时同步lsyncd 1 lsyncd 1.1 lsyncd 简介 Lsyncd使用文件系统事件接口(inotify或fsevents)来监视对本地文件和目录的更改.Lsyncd将这些事件整理几秒钟, ...

随机推荐

  1. 银河麒麟V10在线安装Postgresql步骤

    参考资料https://blog.csdn.net/u010430471/article/details/81663248 https://blog.csdn.net/qq_41619524/arti ...

  2. centos7无法下载nginx

    centos7无法下载nginx   1.正常情况下:先下载epel-release 源然后安装yum install -y nginx2.如果不行,试着执行yum clean all &&a ...

  3. Shiro+SpringBoot前后端分离中跨域,sessionId,302问题

    1.解决跨域 @Configuration public class CorsConfig { public CorsConfiguration buildConfig() { CorsConfigu ...

  4. python ddt file_data

    # -*- coding: utf-8 -*-"""------------------------------------------------- File Name ...

  5. rancher 修改域名

    rancher 修改域名 rancher 修改ingress.nginx 对应的域名后 cattle-system 名称空间下的pod 依然是连接旧环境的rancher 域名 解决办法 1. 需要登录 ...

  6. c++练习272题:金币

    *272题 原题传送门:http://oj.tfls.net/p/272 题解:(遍历,60分) #include<bits/stdc++.h>using namespace std;lo ...

  7. Flutter 登录与list列表demo

    import 'package:flutter/material.dart'; void main() => runApp(DemoApp()); class DemoApp extends S ...

  8. vscode代码片段

    {    "Print to console": {        "prefix": "vue2",        "body& ...

  9. c++ sizeof详解

    c语言详解sizeof   原文地址:http://blog.sina.com.cn/s/blog_5da08c340100bmwu.html 一.sizeof的概念   sizeof是C语言的一种单 ...

  10. iOS 制作一个动态库

    方式一 1.新建一个framework  命名为test 2.将build archive architecture only  改成  NO 3.将Mach-O Type 改成 static Lib ...