一、inotify和lsync

inotify和lsyncd对比一下,发现虽然lsyncd没有inotify那么真正的实时同步,但是lsyncd的同步基本上可以满足基本实时同步的要求,而且lsyncd的配置相对于inotify来说非常简单。

二、简介

服务端:此服务的服务端是指文件推送的目的服务器

客户端:需要被同步的文件所在的服务器

本次需要将客户端/data/src/目录下的文件推送到服务端/data/dest/

三、安装rsync

服务端和客户端都需要安装

yum源安装:

  yum install rsync -y

  编辑服务端配置文件,没有的需要新建

  vim /etc/rsyncd.conf

 uid=root  # 服务器端传输文件时,要发哪个用户和用户组来执行,默认是nobody 根据实际情况修改成对应的用户和组 --chmod= 改成文件的权限
gid=root #
use chroot=no #用chroot,在传输文件之前,服务器守护程序在将chroot 到文件系统中的目录中,这样做的好处是可能保护系统被安装漏洞侵袭的可能。缺点是需要超级用户权限。另外对符号链接文件,将会排除在外
max connections=200 #允许的最大连接数
timeout=600 #超时时间
port=873 服务器的端口号 默认为873
lock file=/var/run/rsync.lock
log file=/var/log/rsyncd.log [test] # 模块名
path = /data/dest # 目标目录 comment = this is test # 说明
auth users = test # 认证用户
secrets file = /etc/rsyncd.secrets # 认证用户配置文件
ignore errors #忽略不重要的错误
read only = no
write only = no
hosts allow = client # 允许的传文件过来的客户端
hosts deny = * #不允许传文件过来的客户端

  编辑认证文件:

    echo "test:test" > /etc/rsyncd.secrets

    chmod 600 /etc/rsyncd.secrets

  启动rsyncd服务

  /usr/bin/rsync --daemon --config=/etc/rsyncd.conf

  无信息输出即传输成功

至此,服务端配置就已经完成,客户端的rsync安装完成即可。

四、安装lsyncd

  注:此服务只需要在客户端配置

  下载服务安装环境:

    yum install cmake lua-devel -y

  下载lsyncd服务并安装:

[root@localhost ~]# cd lsyncd/
[root@localhost lsyncd]# ls
bin2carray.lua CMakeLists.txt default-direct.lua default-rsyncssh.lua examples INSTALL lsyncd.lua tests
ChangeLog config.h.in default.lua distclean.sh fsevents.c lsyncd.c m4
cmake COPYING default-rsync.lua doc inotify.c lsyncd.h README.md
[root@localhost lsyncd]# cmake .
。。。。。。
[root@localhost lsyncd]# make && make install

  安装完成。

  配置lsyncd.conf

    vim /etc/lsyncd.conf

    

 settings {
logfile = "/var/log/lsyncd/lsyncd.log",
statusFile = "/tmp/lsyncd.stat",
inotifyMode ="CloseWrite",
statusInterval = ,
maxDelays = ,
} sync_base_wp = {
default.rsync,
init=false,
delete = true,
rsync = {
binary = "/usr/bin/rsync",
archive = true,
compress = true,
password_file = "/etc/rsyncd.pass"
}
} sync { sync_base_wp,source="/data/src",target = "test@server_ip::test" }

  创建日志目录 mkdir /var/log/lsyncd

  创建密码文件 echo "test" > /etc/rsyncd.pass;chmod 600 /etc/rsyncd.pass

  启动lsyncd       lsyncd -log all /etc/rsyncd.conf

  注:如果你需要用--include 参数,但是lsyncd直接提供的是exclude和excludeFrom,所以你需要把所有不需要传输的文件类型都列出来,有的时候是不合适的。这个时候你可使用_extra = { "--include=" ,...}来实现。

五、测试

  略

至此完成搭建。

附rsync和lsync配置文件详解:

  rsync:https://yq.aliyun.com/articles/43202

  lsync:https://www.kancloud.cn/hiyang/linux/390195

 

    

lsyncd + rsync 实时同步搭建的更多相关文章

  1. Lsyncd实时同步搭建指南

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

  2. 真正的inotify+rsync实时同步 彻底告别同步慢

    真正的inotify+rsync实时同步 彻底告别同步慢       http://www.ttlsa.com/web/let-infotify-rsync-fast/     背景 我们公司在用in ...

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

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

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

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

  5. linux rsync实时同步

    rsync同步 同步与复制的差异:复制:完全拷贝源到目标同步:增量拷贝,只传输变化过的数据 同步操作:remote sync 远程同步支持本地复制,或与其他ssh,rsync主机同步.官方网站:htt ...

  6. 【转载】inotify+rsync实时同步 解决同步慢问题 (转载备记)

    原文地址:http://www.ttlsa.com/web/let-infotify-rsync-fast/ 背景 我们公司在用inotify+rsync做实时同步,来解决分布式集群文件一致性的问题. ...

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

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

  8. rsync实时同步

    假设有如下需求: 假设两个服务器: 192.168.0.1 源服务器  有目录 /opt/test/ 192.168.0.2 目标服务器  有目录 /opt/bak/test/ 实现的目的就是保持这两 ...

  9. [转载]真正的inotify+rsync实时同步 彻底告别同步慢

    原文链接http://www.ttlsa.com/web/let-infotify-rsync-fast/ 背景我们公司在用inotify+rsync做实时同步,来解决分布式集群文件一致性的问题.但当 ...

随机推荐

  1. ORA-01075: you are currently logged on

    [root@hear01 ~]# su - oracle[oracle@hear01 ~]$ sqlplus "/as sysdba" SQL*Plus: Release 11.2 ...

  2. SAS进阶《深入解析SAS》之SAS数据挖掘的一般流程

    SAS进阶<深入解析SAS>之SAS数据挖掘的一般流程 1. 所谓数据挖掘,是指通过对大量的数据进行选择.探索与建模,来揭示包含在数据中以前不为人所知的模式或规律,从而为商业活动或科学研究 ...

  3. Android sensor 系统框架 (一)

    这几天深入学习了Android sensor框架,以此博客记录和分享分析过程,其中难免会有错误的地方,欢迎指出! 这里主要分析KERNEL->HAL->JNI这3层的流程.主要从以下几方面 ...

  4. android中textview单行显示,多余的省略

    <TextView android:id="@+id/music_title" android:layout_width="wrap_content" a ...

  5. JS——undefined、null

    1.undefined == false   //返回false 2.null == false     //返回false 3.undefined == null    //返回true 4.und ...

  6. JS——思维拓展

    1.阶乘求和:4的阶乘是1*2*3*4 <script> function jiechen(value) { var n = 1; for (var i = 1; i <= valu ...

  7. java攻城狮之路--复习xml&dom_pull编程续

    本章节我们要学习XML三种解析方式: 1.JAXP DOM 解析2.JAXP SAX 解析3.XML PULL 进行 STAX 解析 XML 技术主要企业应用1.存储和传输数据 2.作为框架的配置文件 ...

  8. Android ExpandableListView的使用详解

    ExpandableListView(可扩展的ListView) ExpandableListVivew是ListView的子类,它在普通ListView的基础上进行了扩展,它把应用中的列表项分为几组 ...

  9. MaskRCNN路标:TensorFlow版本用于抠图

    MaskRCNN用于检测路标,作为更详细的目标检测,用以得到更精准的额路标位置,路标的几何中心点,用于构建更为精准的拓扑地图,减少构图误差. 抠图工具已经完成,把框抠出来,用0值表示背景. pytho ...

  10. log4j最全教程

    (转自http://www.codeceo.com/article/log4j-usage.html) 日志是应用软件中不可缺少的部分,Apache的开源项目log4j是一个功能强大的日志组件,提供方 ...