lsyncd + rsync 实时同步搭建
一、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 实时同步搭建的更多相关文章
- Lsyncd实时同步搭建指南
linux文件实时同步: inotify+rsync.sersync.lsyncd工具比较 一.inotify + rsync 最近一直在寻求生产服务服务器上的同步替代方案,原先使用的是inotify ...
- 真正的inotify+rsync实时同步 彻底告别同步慢
真正的inotify+rsync实时同步 彻底告别同步慢 http://www.ttlsa.com/web/let-infotify-rsync-fast/ 背景 我们公司在用in ...
- linux下实现多台服务器同步文件(inotify-tools+rsync实时同步文件安装和配置)
inotify-tools+rsync实时同步文件安装和配置 注:转载https://www.linuxidc.com/Linux/2012-06/63624.htm
- lsyncd实时同步搭建指南——取代rsync+inotify
1. 几大实时同步工具比较 1.1 inotify + rsync 最近一直在寻求生产服务服务器上的同步替代方案,原先使用的是inotify + rsync,但随着文件数量的增大到100W+,目录下的 ...
- linux rsync实时同步
rsync同步 同步与复制的差异:复制:完全拷贝源到目标同步:增量拷贝,只传输变化过的数据 同步操作:remote sync 远程同步支持本地复制,或与其他ssh,rsync主机同步.官方网站:htt ...
- 【转载】inotify+rsync实时同步 解决同步慢问题 (转载备记)
原文地址:http://www.ttlsa.com/web/let-infotify-rsync-fast/ 背景 我们公司在用inotify+rsync做实时同步,来解决分布式集群文件一致性的问题. ...
- inotify-tools+rsync实时同步文件安装和配置
服务器A:论坛的主服务器,运行DZ X2论坛程序;服务器B:论坛从服务器,需要把X2的图片附件和MySQL数据实时从A主服务器实时同步到B服务器.MySQL同步设置会在下一编中说到.以下是用于实时同步 ...
- rsync实时同步
假设有如下需求: 假设两个服务器: 192.168.0.1 源服务器 有目录 /opt/test/ 192.168.0.2 目标服务器 有目录 /opt/bak/test/ 实现的目的就是保持这两 ...
- [转载]真正的inotify+rsync实时同步 彻底告别同步慢
原文链接http://www.ttlsa.com/web/let-infotify-rsync-fast/ 背景我们公司在用inotify+rsync做实时同步,来解决分布式集群文件一致性的问题.但当 ...
随机推荐
- 基于Spark Streaming预测股票走势的例子(一)
最近学习Spark Streaming,不知道是不是我搜索的姿势不对,总找不到具体的.完整的例子,一怒之下就决定自己写一个出来.下面以预测股票走势为例,总结了用Spark Streaming开发的具体 ...
- 微信小程序之上传多张图片
之前写过一篇小程序商品发布的博客,里面有上传多张图片的功能,这里单独拿出来实现以下,小程序的upLoadFile一次只能上传一张图片,需要循环调这个接口来实现 for (var i = 0; i &l ...
- BZOJ 2178 Simpson积分
思路: 我发现能用Simpson积分水的题 好像都是裸题诶233333 //By SiriusRen #include <bits/stdc++.h> using namespace s ...
- 设置myeclipse的JSP、HTML的页面编码格式
JSP编码格式: 点击菜单上的window--->preferences 在弹出的对话框中点击MyEclise--->Files and Editors--->JSP, 在Encod ...
- IIS Express配置多站点同时运行
环境:Win10 Pro.Visual Studio 2015 Community.IIS Express 10 VS2015集成IIS Express,所以无需单独下载, 默认安装位置:C:\Pro ...
- [转][IPC通信]基于管道的popen和pclose函数
标准I/O函数库提供了popen函数,它启动另外一个进程去执行一个shell命令行. 这里我们称调用popen的进程为父进程,由popen启动的进程称为子进程. popen函数还创建一个管道用于父子进 ...
- linux 安装 mongo
整个安装过程:下载安装包--> 解压,添加系统路径(是滴,不用安装解压即可) --> 创建数据目录 --> 启动mongod服务 --> 运行mongo 1.下载安装包 Mon ...
- JS——null
变量被赋值为null,目的往往是为了销毁这个对象: var n1 = 1; n1 = null;
- CAD在网页中增加一个射线
主要用到函数说明: IMxDrawBlockTableRecord::AddRay 向记录中增加一个射线,详细说明如下: 参数 说明 point1 射线上的点1 point2 射线上的点2 js代码实 ...
- LNMP动态网站架构及web应用部署,搭建discuz论坛
1)部署Nginx 实验tar安装包可找本人拿记得点+关注,感谢亲们支持,评论拿包 systemctl stop firewalld iptables -F setenforce 0 1)安装支持软件 ...