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

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

安装

在源文件服务器上安装:

  1. yum -y install lsyncd

配置

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

  1. settings {
  2. nodaemon = false,
  3. logfile = "/var/log/lsyncd.log",
  4. statusFile = "/var/log/lsyncd.status",
  5. inotifyMode = "CloseWrite",
  6. maxProcesses = 8
  7. }
  8. -- 可以有多个sync,各自的source,各自的target,各自的模式,互不影响。
  9. sync {
  10. default.rsyncssh,
  11. source = "/home/wwwroot/web1/",
  12. host = "111.222.333.444",
  13. targetdir = "/home/wwwroot/web1/",
  14. -- 忽略文件路径规则,可用table也可用外部配置文件
  15. -- excludeFrom = "/etc/lsyncd_exclude.lst",
  16. exclude = {
  17. ".svn",
  18. "Runtime/**",
  19. "Uploads/**",
  20. },
  21. -- maxDelays = 5,
  22. delay = 0,
  23. -- init = false,
  24. rsync = {
  25. binary = "/usr/bin/rsync",
  26. archive = true,
  27. compress = true,
  28. verbose = true,
  29. _extra = {"--bwlimit=2000"},
  30. },
  31. }

忽略规则

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

  1. .svn
  2. Runtime/**
  3. Uploads/**

免密登录

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

启动

  1. lsyncd -log Exec /etc/lsyncd.conf

参考


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

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

  1. sersync 实时同步文件

    sersync 主要用于服务器同步,web镜像等功能.sersync是使用c++编写,在结合rsync同步的时候,节省了运行时耗和网络资源.因此更快.sersync配置起来很简单.另外本项目相比较其他 ...

  2. linux设置rsync+inotify实时同步文件

    linux设置rsync+inotify实时同步文件   应用场景: 同步接收方:test01 接收目录:/opt/software/test/a/ 同步发起方:test02 同步目录:/opt/so ...

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

    inotify-tools+rsync实时同步文件安装和配置 注:转载https://www.linuxidc.com/Linux/2012-06/63624.htm

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

    安装 #安装inotify 工具 [root@localhost ~]# yum install inotify-tools -y 常用命令 [root@localhost ~]# inotifywa ...

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

    服务器A:论坛的主服务器,运行DZ X2论坛程序;服务器B:论坛从服务器,需要把X2的图片附件和MySQL数据实时从A主服务器实时同步到B服务器.MySQL同步设置会在下一编中说到.以下是用于实时同步 ...

  6. CentOS7之Rsync+Inotify架构实现实时同步文件和文件夹

    简介:rsync是用来同步文件和文件夹的,inotify是用来实现监听变动而自动同步的 OS:Centos7.3 服务器端:172.16.13.157 客 户 端  :172.16.13.156 目  ...

  7. Windows怎样实时同步文件夹?Java+Spring+Quartz+Tomcat集群实现

    我有一台服务器上加了两块硬盘.其中有个目录下的数据非常重要.假设是D:\data目录.这个目录下有几十个G的文件. 我希望能把这个文件夹里的内容同步到另一块硬盘的目录下,假设是E:\data 我希望最 ...

  8. rsync实时同步文件

    http://rsync.samba.org/download.html [root@v01 src]# yum install git [root@v01 src]# git clone git:/ ...

  9. CentOS6.5实现rsync+inotify实时同步

    参考博文: 参考1:CentOS6.5实现rsync+inotify实时同步 参考2:inotify-tools+rsync实时同步文件安装和配置 CentOS 6.3下rsync服务器的安装与配置  ...

随机推荐

  1. JavaScript-BOM与DOM

    BOM与DOM BOM: Browser Object Model(浏览器对象模型),即把 浏览器 当做一个对象来看待.BOM 除了可以访问文档中的组件之外,还可以访问 浏览器组件,比如页面中的 na ...

  2. Scrum的3种角色划分--2048小游戏

    WBS分析: 敏捷开发 Scrum的3种角色划分:产品负责人PO(Product Owner).SM(ScrumMaster).开发团队(Team) 职责: PO:负责在限定期限内拟定可能的最有价值的 ...

  3. log4j日志的使用

    1.引架包和导配置文件log4j.properties <dependency> <groupId>org.slf4j</groupId> <artifact ...

  4. can't open the mysql.plugin table. please run mysql_upgrade to create it.

    To initialize a fresh data directory, you basically (after setting your config file) just have to ru ...

  5. Leetcode 34 Find First and Last Position of Element in Sorted Array 解题思路 (python)

    本人编程小白,如果有写的不对.或者能更完善的地方请个位批评指正! 这个是leetcode的第34题,这道题的tag是数组,需要用到二分搜索法来解答 34. Find First and Last Po ...

  6. c#项目减少源代码大小

    这次的代码缩减主要通过了这几个方面 1.bin和obj文件的删除(以前真的不知道,只是通过右键属性发现这些文件太大,然后上网搜索才知道,这些文件在源代码备份的时候是建议删掉的) 删掉的好处: 1.减少 ...

  7. python+unittest 控制用例的执行顺序

    unittest的main()方法执行用例的顺序是按照测试类.测试方法的名字的ASCII顺序来执行测试方法.所以可能执行的顺序和你想要的顺序不一样,可能通过下面两种方法修改执行顺序 1. 通过Test ...

  8. 复习java基础

    十进制转换成二进制:     方法:整除法,计数方式从右往左,二进制中非0即1.例子如下: 计数方式是从右往左进行,然后填写数字的顺序是余数优先 二进制转换成十进制: 方法:乘二法,例如二进制数字为: ...

  9. 背水一战 Windows 10 (94) - 选取器: 自定义文件打开选取器

    [源码下载] 背水一战 Windows 10 (94) - 选取器: 自定义文件打开选取器 作者:webabcd 介绍背水一战 Windows 10 之 选取器 自定义文件打开选取器 示例1.演示如何 ...

  10. linux下如何把php升级到5.6

    1: 进入终端后查看php版本 php -v 输出可能如下: PHP (cli) (built: Nov ::) Copyright (c) - The PHP Group Zend Engine v ...