文件同步工具 lsyncd2.1.6 安装使用问题
项目有文件实时同步备份的需求,做了一下调查,比较好的解决方法是使用lsyncd工具。这里主要记录一下遇到的问题及解决方法。
lsyncd 的相关介绍和对比可见:
lsyncd实时同步搭建指南——取代rsync+inotify
Linux下同步工具inotify+rsync使用详解
Linux文件系统Inotify机制
lsyncd官方文档:
Lsyncd - Live Syncing (Mirror) Daemon
1、安装问题
安装时需要先安装 lua和cmake,可直接使用apt-get:
apt-get install lua5.1
apt-get install lua5.1-dev
apt-get install cmake
接着可以下载 lsyncd-2.1.6 版本解压安装,解压后进入改目录:
cmake ,
make
make install
即可完成安装。
2、使用问题
如果使用在大型系统上,文件数量多、大,文件变化频繁,则要修改一些系统参数。
因为lsyncd 有用到 inotify监听,其中相关的主要是这几个参数:
#ls -l /proc/sys/fs/inotify/ total 0 -rw-r--r-- 1 root root 0 Oct 9 09:36 max_queued_events -rw-r--r-- 1 root root 0 Oct 9 09:36 max_user_instances -rw-r--r-- 1 root root 0 Oct 9 09:36 max_user_watches
/proc/sys/fs/inotify/max_user_instances 默认值: 128 指定了每一个real user ID可创建的inotify instatnces的数量上限
/proc/sys/fs/inotify/max_user_watches 默认值: 8192 指定了每个inotify instance相关联的watches的上限
/proc/sys/fs/inotify/max_queued_events 默认值: 16384,Inotify 管理的队列的最大长度
如果监听的文件数量大,则增大 max_user_watches(否则可能启动失败),如果文件变化频繁,则增大max_queued_events(否则队列溢出,导致部分文件未同步或lsyncd重启) :
一次性方法:
sysctl fs.inotify.max_user_watches=xxxxxx
长久有效:
fs.inotify.max_user_watches=xxxxxx 写进 /ect/sysctl.conf,然后 sysctl -p 打印查看
(注意:max_queued_events 修改后,需要重启lsyncd才能生效----2018-6-14 更新说明)
参考:
linux 高效的文件系统事件监控 内核级解析方案 inotify
Lsyncd causes load while monitoring large filesystem.
3、基本参数介绍
settings
里面是全局设置,--
开头表示注释,下面是几个常用选项说明:
logfile
定义日志文件stausFile
定义状态文件nodaemon=true
表示不启用守护模式,默认statusInterval
将lsyncd的状态写入上面的statusFile的间隔,默认10秒inotifyMode
指定inotify监控的事件,默认是CloseWrite
,还可以是Modify
或CloseWrite or Modify
maxProcesses
同步进程的最大个数。假如同时有20个文件需要同步,而maxProcesses = 8
,则最大能看到有8个rysnc进程maxDelays
累计到多少所监控的事件激活一次同步,即使后面的delay
延迟时间还未到sync
里面是定义同步参数,可以继续使用maxDelays
来重写settings的全局变量。一般第一个参数指定lsyncd
以什么模式运行:rsync
、rsyncssh
、direct
三种模式:
default.rsync
:本地目录间同步,使用rsync,也可以达到使用ssh形式的远程rsync效果,或daemon方式连接远程rsyncd进程;
default.direct
:本地目录间同步,使用cp
、rm
等命令完成差异文件备份;
default.rsyncssh
:同步到远程主机目录,rsync的ssh模式,需要使用key来认证
source
同步的源目录,使用绝对路径。
target
定义目的地址.对应不同的模式有几种写法:
/tmp/dest
:本地目录同步,可用于direct
和rsync
模式
172.29.88.223:/tmp/dest
:同步到远程服务器目录,可用于rsync
和rsyncssh
模式,拼接的命令类似于/usr/bin/rsync -ltsd --delete --include-from=- --exclude=* SOURCE TARGET
,剩下的就是rsync的内容了,比如指定username,免密码同步
172.29.88.223::module
:同步到远程服务器目录,用于rsync
模式
三种模式的示例会在后面给出。
init
这是一个优化选项,当init = false
,只同步进程启动以后发生改动事件的文件,原有的目录即使有差异也不会同步。默认是true
delay
累计事件,等待rsync同步延时时间,默认15秒(最大累计到1000个不可合并的事件)。也就是15s内监控目录下发生的改动,会累积到一次rsync同步,避免过于频繁的同步。(可合并的意思是,15s内两次修改了同一文件,最后只同步最新的文件)excludeFrom
排除选项,后面指定排除的列表文件,如excludeFrom = "/etc/lsyncd.exclude"
,如果是简单的排除,可以使用exclude = LIST
。
这里的排除规则写法与原生rsync有点不同,更为简单:
- 监控路径里的任何部分匹配到一个文本,都会被排除,例如
/bin/foo/bar
可以匹配规则foo
- 如果规则以斜线
/
开头,则从头开始要匹配全部- 如果规则以
/
结尾,则要匹配监控路径的末尾?
匹配任何字符,但不包括/
*
匹配0或多个字符,但不包括/
**
匹配0或多个字符,可以是/
delete
为了保持target与souce完全同步,Lsyncd默认会delete = true
来允许同步删除。它除了false
,还有startup
、running
值,请参考 Lsyncd 2.1.x ‖ Layer 4 Config ‖ Default Behavior。rsync
(提示一下,delete
和exclude
本来都是rsync的选项,上面是配置在sync中的,我想这样做的原因是为了减少rsync的开销)
bwlimit
限速,单位kb/s,与rsync相同(这么重要的选项在文档里竟然没有标出)compress
压缩传输默认为true
。在带宽与cpu负载之间权衡,本地目录同步可以考虑把它设为false
perms
默认保留文件权限。- 其它rsync的选项
其它还有rsyncssh模式独有的配置项,如
host
、targetdir
、rsync_path
、password_file
,见后文示例。rsyncOps={"-avz","--delete"}
这样的写法在2.1.*版本已经不支持。
lsyncd.conf
可以有多个sync
,各自的source,各自的target,各自的模式,互不影响。
引用:
lsyncd实时同步搭建指南——取代rsync+inotify
更新至 2018-06-06
转载于:https://www.cnblogs.com/GO-NO-1/p/9146326.html
文件同步工具 lsyncd2.1.6 安装使用问题相关推荐
- Syncthing-P2P文件同步工具学习
Syncthing-P2P文件同步工具学习 简介 windows安装 其他 linux安装 linux vps安装配置 linux vps内安装syncthing 简介 开源的文件同步工具,基于P2P ...
- 4.2w Star的文件同步工具,比VIP网盘还好用!
关注TJ君,回复"武功秘籍"免费获取计算机宝典书籍 昨天圣诞夜TJ君却做了一件烦心的事情,是什么事情呢? 其实就是TJ君平时有时候会偷懒,把微信当作存储工具,一些小伙伴传过来的文件 ...
- Windows电脑值得下载使用的文件同步工具
Windows电脑文件同步工具哪个好用?今天小西给大家推荐一款非常好用的文件同步工具,可以实现自动化同步.多设备(本地磁盘.移动硬盘.U盘.网盘等)同步,可以说实用性非常强. FileYee是一款Wi ...
- 远程文件同步工具--rsync
远程文件同步工具--rsync rsync rsync同步简介 rsync同步方式 配置源的两种方法 rsync常用命令 rsync实验 1.本地复制 2.远程复制 1.配置rsync服务器 2.为备 ...
- Syncthing - P2P文件同步工具使用
1 简介 随着数据的增长,我们对于文件的同步和备份需求也日趋强烈.各种网盘为我们在文件同步备份提供便利的同时,也在速度.安全和隐私等方面带来不小的限制和风险. Syncthing是一款开源免费跨平台的 ...
- 用树莓派搭建全功能NAS服务器(06):自带穿透的文件同步工具
写在前面 说完了nextcloud,大家已经对于个人网盘不再陌生.但想要做到随时随地同步文件,还需要公网IP/内网穿透. 其实说到文件同步,还有一款自带内网穿透的P2P文件同步工具必须介绍一下,就是s ...
- Syncing文件同步工具(详解)
简介: Syncthing是一种开源的文件同步工具,旨在实现跨多个设备之间的安全和私密的文件同步.它提供了一种去中心化的方法来同步文件,并通过点对点(P2P)技术直接在设备之间进行通信,而无需传统的云 ...
- 遥望星空FTP文件同步工具(附源码)1.0 发布
FTP文件同步工具1.0 发布 主要功能: 1.支持多任务多线程 2.支持自动启动 3.支持2种时间触发方式 4.支持任务进度显示 5.支持WinFtp Server.ftpserver.exe.Se ...
- Rsync 3.1.0 发布,文件同步工具
文件同步工具Rsync 3.1.0发布.2013-09-29 上一个版本还是2011-09-23的3.0.9 过了2年多.Rsync基本是Linux上文件同步的标准了,也可以和inotify配合做实时 ...
最新文章
- 华为手环怎么没有上鸿蒙,不再是大号手环!华为鸿蒙手表来了:要和苹果抢生态?...
- python三维圆曲面_python – matplotlib中的曲面和三维轮廓
- AJAX应用之注册用户即时检测
- 炒股的最终下场(搞笑趣图)
- P1375 嵌套矩形
- MySQL 基本信息的查询(初始化配置信息 my.ini)
- jquery事件绑定和解除绑定bind、unbind、one
- 或许是介绍Android Studio使用Git最详细的文章
- 程序员如何成为一名自由职业者?
- c语言的常用英语单词和翻译,c语言通用英语词汇带翻译
- pip 下载whl文件
- parted如何将磁盘所有空间格式化_磁盘-使用parted格式化大容量数据盘
- ADNI数据集相关概念整理
- 一级域名二级域名区别
- url“forum.php,如何让discuz论坛首页打开不显示forum.php的方法分享
- word表格换页自动续前表的方法
- Mybatis执行流程、缓存原理以及相关面试题
- 【Linux】进程状态
- 在c语言中while与do-while,C语言中while /do while语句用法
- APP地推的一些经验
热门文章
- java jsch_java使用JSCH实现SFTP文件管理
- 机器学习--多标签softmax + cross-entropy交叉熵损失函数详解及反向传播中的梯度求导
- 图像去噪--Noise2Noise: Learning Image Restoration without Clean Data
- 视频动作识别--Convolutional Two-Stream Network Fusion for Video Action Recognition
- loadrunner11 linux服务器,Loadrunner怎么执行linux服务器上的shell脚本?
- windows AD/DNS服务器搭建
- 遗传算法c语言程序,遗传算法c语言代码.doc
- 工作流引擎 SpringBoot+flowable完美结合,快速实现工作流,so easy
- instancesRespondToSelector与respondsToSelector的区别
- PHP中htmlentities跟htmlspecialchars的区别