lsync目录文件实时同步工具

参考文档:https://vastxiao.github.io/article/2017/09/02/Linux/lsyncd_usage/

防止连接丢失,已保存至百度网络-郑州-XXXXX

建议首先查看  参考文档连接,写的比较全了

1、简介

lsync
官网:https://axkibe.github.io/lsyncd/

Lysncd 实际上是lua语言封装了inotify和rsync工具,采用了Linux内核(2.6.13及以后)里的inotify触发机制,然后通过rsync去差异同步,达到实时的效果。
最亮的特性:完美解决了inotify+rsync海量文件同步带来的文件频繁发送文件列表的问题 —— 通过时间延迟或累计触发事件次数实现。
它的配置方式很简单,lua本身就是一种配置语言,可读性非常强。
lsyncd也有多种工作模式可以选择,本地目录cp,本地目录rsync,远程目录rsyncssh。
实现简单高效的本地目录同步备份(网络存储挂载也当作本地目录),一个命令搞定。

2、安装

# yum安装需要epel源
# 阿里epel源地址:http://mirrors.aliyun.com/help/epel
yum install lsyncd
源码安装:
yum install -y lua cmake rsync
VERSION=2.1.5
wget -O lsyncd-release-${VERSION?err}.tar.gz https://github.com/axkibe/lsyncd/archive/release-${VERSION?err}.tar.gz
tar -zxvf lsyncd-release-${VERSION?err}.tar.gz
cd lsyncd-release-${VERSION?err}
cmake .
make
sudo make install

3、yum安装文件结构

        路径              说明
/etc/lsyncd.conf    主配置文件
/etc/sysconfig/lsyncd       init环境变量和启动选项配置文件
/etc/logrotate.d/lsyncd    日志滚动配置文件
/usr/share/doc/lsyncd-*/examples/    目录下有lsyncd.conf配置例子
/etc/init.d/lsyncd         lsyncd的init启动脚本
/usr/bin/lsyncd     lsyncd命令路径
/var/run/lsyncd/    可放lsyncd.pid的目录
/var/log/lsyncd/    默认的日志目录

4、文件配置

lsyncd的一个配置文件总体分类:

settings(global):settings是全局进程设置。
sync(layer 4):sync里面是定义同步参数,可以有多个sync,各自的sync配置,互不影响。
onAction(layer 3): 用于定义sync触发的事件动作,定义后的Action应用到sync配置下。
(例如监控某个目录下的文件,根据触发的事件自己定义要执行的命令。)
AdvancedonAction(layer 2):自定义事件模型,定义后可应用到layer3和layer4。
Inlets(layer 1):自定义事件函数,一般在自定义事件模型(layer 2)中使用自定义事件函数。
注释:–开头表示注释
[[email protected] ~]# cat /etc/lsync.conf
----
-- User configuration file for lsyncd.
--
-- Simple example for default rsync, but executing moves through on the target.
--
-- For more examples, see /usr/share/doc/lsyncd*/examples/
--
settings {
--pidfile = "/var/run/lsyncd/lsyncd.pid"
--nodaemon = false,
inotifyMode = "CloseWrite",
maxProcesses = 8,
statusFile ="/tmp/lsyncd.status",
statusInterval = 10,
logfile = "/var/log/lsyncd/lsyncd.log"
}

-- # 监测本地目录发生变化就用touch更新一下mtime时间。
flushModifyTime = {
delay = 10,
maxProcesses = 10,
onCreate = "touch ^sourcePathname",
onModify = "touch ^sourcePathname",
}

sync {
default.rsync,
source = "/opt/share",
target = "[email protected]::beian",
delete = "running",
-- exclude = { "logs" },
delay = 10,
init = false,
rsync = {
binary = "/usr/bin/rsync",
archive = true,
compress = true,
verbose = true,
password_file = "/etc/rsyncd.d/rsync.pwd",
_extra = { "--bwlimit=200" }
}
}
-----------------------------------------------------------------------
启动:
lsyncd -pidfile /var/run/lsyncd.pid /etc/lsyncd.conf

一个真实的例子:本地目录备份

[[email protected] ~]# cat /etc/lsyncd.conf
settings {
   --pidfile = "/var/run/lsyncd/lsyncd.pid",
   --nodaemon  = false,
   inotifyMode = "CloseWrite",
   maxProcesses = 8,
   statusFile = "/tmp/lsyncd.status",
   statusInterval = 10,
   logfile = "/var/log/lsyncd/lsyncd.log"
}

sync {
   default.rsync,
   source = "/opt/webapplication",
   target = "/back_up/webapplication",
   delete = "false",
   --exclude = { "logs" },
   delay = 5,
   init = false,
   rsync    = {
    binary = "/usr/bin/rsync",
    archive = true,
    compress = true,
    verbose = true,
        bwlimit = 2000
    }
}

sync {
   default.rsync,
   source = "/data",
   target = "/back_up/data",
   delete = "false",
   --exclude = { "logs" },
   delay = 5,
   init = false,
   rsync    = {
    binary = "/usr/bin/rsync",
    archive = true,
    compress = true,
    verbose = true,
        bwlimit = 2000
    }
}
[[email protected] ~]# 

原文地址:https://www.cnblogs.com/huangyanqi/p/9753508.html

时间: 2024-08-04 07:26:56

lsync目录文件实时同步工具的相关文章

局域网文件实时同步工具

自同步软件是一款自同步是最好用的局域网文件实时同步工具.软件使用方便.同步快速,并且支持五大平台,包括windows.mac.linux.android和IOS(未发布).轻松实现多设备之间的无线数据同步,无需注册下载即用,简单与智慧并存,安全与极速并重,您居家办公必备的之神器. 自同步软件特点1.全平台覆盖. 包揽所有平台,让跨平台使用数据不在那么遥远.你不必担心在Windows.Linux.Mac多平台间的数据传递:更不必担心在电脑.手机.平板等多设备间传输文件的跨平台问题. 自同步全平台覆

sersync2+rsync目录文件实时同步备份

说明: 192.168.1.2(sersync+rsync)---------------FTP 192.168.1.3(rsync)--------------------------backup 实验目的: 实时自动同步:192.168.1.2 ------->192.168.1.3到目录:/data/ftpdata ; 764  viconfxml.xml 765  ./GNU-Linux-x86/sersync2 -d -r confxml.xml 767  ./GNU-Linux-x8

rsync+inotify 实现服务器之间目录文件实时同步(转)

软件简介: 1.rsync 与传统的 cp. tar 备份方式相比,rsync 具有安全性高.备份迅速.支持增量备份等优点,通过 rsync 可 以解决对实时性要求不高的数据备份需求,例如定期的备份文件服务器数据到远端服务器,对本地磁盘定 期做数据镜像等. 随着应用系统规模的不断扩大,对数据的安全性和可靠性也提出的更好的要求,rsync 在高端业务系统中 也逐渐暴露出了很多不足,首先,rsync 同步数据时,需要扫描所有文件后进行比对,进行差量传输.如 果文件数量达到了百万甚至千万量级,扫描所有

Linux-rsync+inotify目录文件实时同步备份

1.环境介绍 192.168.1.2 (rsync+inotify)-----------FTP 192.168.1.3 (rsync)---------------------backup 实验目的: 实时自动同步:192.168.1.2 ------->192.168.1.3到目录:/data/ftpdata ; 一.FTP服务器(rsync+inotify) 1.准备软件包 [[email protected] ~]# mkdir /data/ftpdata [[email protect

Rsync+inotify实现文件实时同步

数据备份.文件备份是运维.DBA等岗位最熟悉不过的话题,这里不介绍数据库的备份,简单介绍一下文件同步工具,这样的工具有很多,Windows环境下有Goodsync.FreeFileSync等,Linux下rsync.unison等,常用的实时同步,是几种工具的组合,经过组合的工具达到文件实时同步的效果. 一.常用实时同步方案 1.NFS网络文件系统 该方案是分布式架构中,解决不同节点对同一资源访问的问题,搭建NFS服务器,将其挂载在不同的节点,每个节点将公用的数据存储在NFS服务器上,实现文件的

Inotify+rsync实时同步工具实战

Inotify+rsync实时同步工具实战 分别有机器:server-178/24,client-b-179/24,client-c-180/24 中心分发服务器Master:client-c-180/24 备份服务器    :client-b-179/24和server-178/24 基于备份服务器已经提供rsync --daemon的基础上,在中心分发服务器(rsync客户端)配置inotify,监控的目录设置为/www/ 1.查看当前系统是否支持inotify ls -l /proc/sy

Centos 6.5 rsync+inotify 两台服务器文件实时同步

rsync和inotify是什么我这里就不在介绍了,有专门的文章介绍这两个工具. 1.两台服务器IP地址分别为: 源服务器:192.168.1.2 目标服务器:192.168.1.3 @todo:从源服务器(192.168.1.2)的/www/目录下的所有的文件实时同步到目标服务器(192.168.1.3)的/www_bak/目录下 源服务器下需要安装rsync和inotify,源服务器做为server端,实时的向目标服务器client端发送数据 2.安装 rsync 一般centos6.5下都

rsync+inotify 实现服务器文件实时同步

rsync+inotify 实现服务器文件实时同步 操作系统:CentOS 6.X 源服务器:192.168.80.132 目标服务器:192.168.80.128 目的:把源服务器上/data/app目录实时同步到目标服务器的/data/app下 具体操作: 第一部分:在目标服务器192.168.80.128上操作 一.在目标服务器安装Rsync服务端 1.关闭SELINUX vi /etc/selinux/config #SELINUX=enforcing #SELINUXTYPE=targ

inotify用法简介及结合rsync实现主机间的文件实时同步

一.inotify简介 inotify是Linux内核2.6.13 (June 18, 2005)版本新增的一个子系统(API),它提供了一种监控文件系统(基于inode的)事件的机制,可以监控文件系统的变化如文件修改.新增.删除 等,并可以将相应的事件通知给应用程序.该机制由著名的桌面搜索引擎项目beagle引入用于替代此前具有类似功能但存在诸多缺陷的dnotify. inotify既可以监控文件,也可以监控目录.当监控目录时,它可以同时监控目录及目录中的各子目录及文件的.此外,inotify