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

lsyncd 是一个支持实时、双向、多机器的多模式文件同步工具。

使用 Lua 语言封装了 inotify 和 rsync 工具,采用了 Linux 内核(2.6.13 及以后)里的 inotify 触发机制,然后通过 rsync 去差异同步,达到实时的效果。

安装

在源文件服务器上安装:

yum -y install lsyncd

配置

lsyncd 主配置文件,假设放置在/etc/lsyncd.conf:

settings {
    nodaemon = false,
    logfile = "/var/log/lsyncd.log",
    statusFile = "/var/log/lsyncd.status",
    inotifyMode = "CloseWrite",
    maxProcesses = 8
}

-- 可以有多个sync,各自的source,各自的target,各自的模式,互不影响。
sync {
    default.rsyncssh,
    source    = "/home/wwwroot/web1/",
    host      = "111.222.333.444",
    targetdir = "/home/wwwroot/web1/",
    -- 忽略文件路径规则,可用table也可用外部配置文件
    -- excludeFrom = "/etc/lsyncd_exclude.lst",
    exclude = {
        ".svn",
        "Runtime/**",
        "Uploads/**",
    },
    -- maxDelays = 5,
    delay = 0,
    -- init = false,
    rsync = {
        binary = "/usr/bin/rsync",
        archive = true,
        compress = true,
        verbose = true,
        _extra = {"--bwlimit=2000"},
    },
}

忽略规则

需要忽略同步的文件或文件夹,excludeFrom 选项才配置该文件,exclude 类型的配置不用该配置文件。假设配置文件放在/etc/lsyncd_exclude.lst

.svn
Runtime/**
Uploads/**

免密登录

为避免每次都需要手动输入密码,可设置为 SSH 免密登录。

启动

lsyncd -log Exec /etc/lsyncd.conf

参考


原文地址: https://shockerli.net/post/linux-tool-lsyncd/

原文地址:https://www.cnblogs.com/shockerli/p/linux-tool-lsyncd.html

时间: 2024-11-06 11:36:24

lsyncd —— 多机器实时同步文件神器的相关文章

sersync实现多台服务器实时同步文件

基本架构 如上图所示,线程组线程是等待线程队列的守护线程,当队列中有数据的时候,线程组守护线程逐个唤醒,当队列中inotify事件较多的时候就会被全部唤醒一起工作.这样设计的目的是能够同时处理多个inotify事件,重发利用服务器的并发能力(核数*2+2). 之所以称之为线程组线程,是因为每个线程在工作的时候,会根据服务器的数量建立子线程,子线程可以保证所有的文件与各个服务器同时同步,当要同步的文件较大的时候,这样设计可以保证各个远程服务器可以同时获得要同步的文件. 服务线程的作用有三个,首先是

rsync+inotify实时同步文件

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

inotify-tools+rsync实时同步文件安装和配置

服务器A:论坛的主服务器,运行DZ X2论坛程序;服务器B:论坛从服务器,需要把X2的图片附件和MySQL数据实时从A主服务器实时同步到B服务器.MySQL同步设置会在下一编中说到.以下是用于实时同步两台服务器的图片. 因为一般的RSYNC需要CRON来定期运行SH脚本来实现同步,这样会带来一些问题.比如用户从主服务器上传上一个图片,需要最少一分钟才能从从服务器显示出来.自从Linux 2.6内核后,支持了inotify机制,当某些文件或文件夹有改变时,发出相应的事件,这样,第三方程序只要订阅这

linux下实现多台服务器同步文件(inotify-tools+rsync实时同步文件安装和配置)

inotify-tools+rsync实时同步文件安装和配置 注:转载https://www.linuxidc.com/Linux/2012-06/63624.htm 原文地址:https://www.cnblogs.com/ccw869476711/p/9007156.html

rsync+inotify安装配置 实时同步文件

安装 #安装inotify 工具 [root@localhost ~]# yum install inotify-tools -y 常用命令 [[email protected] ~]# inotifywait -rm /data/ \\实时监控/data的所有事件(包括文件的访问.写入.修改.删除等) [[email protected] ~]# inotifywait -mrq --timefmt '%Y/%m/%d-%H:%M:%S' --format '%T %w %f' > -e mo

rsync实时同步文件

http://rsync.samba.org/download.html [[email protected] src]# yum install git [[email protected] src]# git clone git://git.samba.org/rsync.git [[email protected] src]# git clone git://git.samba.org/rsync.git Initialized empty Git repository in /usr/l

Inotify+Rsync实时同步文件

一.网络拓补图: 原文地址:http://blog.51cto.com/hbgslz/2064576

七十四、expect脚本同步文件、expect脚本指定host和要同步的文件、构建文件分发系统、

七十四.expect脚本同步文件.expect脚本指定host和要同步的文件.构建文件分发系统.批量远程执行命令 一.expect脚本同步文件 自动同步文件,在一台机器上同步文件到另一台机器上去.核心命令是rsync [[email protected] sbin]# vim 4.expect     路径:/usr/local/sbin/ #!/usr/bin/expect set passwd "1346" spawn rsync -av [email protected]:/tm

用lsyncd和rsyncd实现无ssh支持的文件实时同步

文件存储与同步的基本讨论 网站发展到一定阶段,有时需要将各服务器上传的文件进行集中,这里讨论如果集中的问题,至于如果分散负载均衡.CDN加速.多主机.多域名等blablabla,概不讨论. 集中共享的方案(环境以CentOS 6.5为例)通常的作法是文件同步.共享硬盘空间.硬件堆叠和分布式文件存储四种. 文件同步是用工具定时或自动将分散的文件同步到一个集中的存储区域,如cron配合ftp.ssh.rsync等实现定时同步: 共享空间的做法是用文件存储协议实现挂载和管理,如mount.samba.