1、描述,, Lsyncd+ssh 开源lsyncd采用inotify原理监听某一个目录,如果目录内发生变化,利用rsync协议自动同步多服务器,因此lsyncd是一个轻量级的实时镜像解决方案。 lua-devel #tar -xzvf lsyncd-2.1.5.tar.gz #cd lsyncd-2.1.5 #. /configure #make #make install #whereis lsyncd lsyncd: /usr/local/bin/lsyncd 创建配置文件目录: #mkdir /etc/lsyncd #cd /etc/lsyncd #vim lsyncd.lua --注意:lua语法的规则 文件配置语法 settings{ logfile = "/var/log/lsyncd.log", 服务: #lsyncd /etc/lsyncd/lsyncd.lua #ps -ef | grep lsyncd lsyncd lsyncd.lua 注意:服务器之间需要配置ssh 无密码登录
cd etc/ 编译配置文件 vim lsyncd.conf 内容如下: settings { --pid文件 logfile = "/usr/local/lsyncd/var/lsyncd.log /bin/lsyncd /usr/local/lsyncd/etc/lsyncd.conf 查看进程是否存在 ps -aux | grep lsyncd 如果不存在进程,请查看/usr/local/lsyncd # config: /usr/local/lsyncd/etc/lsyncd.conf # config: /etc/sysconfig/lsyncd # pidfile: ="-pidfile /var/run/lsyncd.pid /usr/local/lsyncd/etc/lsyncd.conf" if [ -e /etc/sysconfig/lsyncd ]; then --user ${LSYNCD_USER}} /usr/local/lsyncd/bin/lsyncd $LSYNCD_OPTIONS RETVAL=$?
环境 源服务器 源路径 目标服务器 目标路径 192.168.0.183 /data/nfs_share 192.168.0.23 /data/nfs_share 安装lsyncd yum install epel-release yum install lua lua-devel lsyncd 修改lsyncd配置 该配置为单向同步,192.168.0.183同步到192.168.0.23 vim / etc/lsyncd.conf settings { logfile = "/var/log/lsyncd.log", statusFile = "/tmp/lsyncd.status verbose = true, whole_file = false }, ssh = { port = 22 } } 启动服务 systemctl enable lsyncd systemctl start lsyncd
一、Lsyncd安装方法 Lsyncd官网是:http://axkibe.github.io/lsyncd/,Linux安装命令如下: # Ubuntu sudo apt install lsyncd 二、Lsyncd配置说明 打开Lsyncd的配置,你可以看到主要包括两个部分:一是设置,另一个是同步 。 mkdir /var/log/lsyncd touch /var/log/lsyncd/lsyncd.{log,status} 然后,创建配置文件。 = { logfile = "/var/log/lsyncd/lsyncd.log", statusFile = "/var/log/lsyncd/lsyncd.status 代码如下: /etc/init.d/lsyncd start chkconfig lsyncd on
安装Lsyncd 我们的服务器比较简单,基于centos的yum安装即可 yum install lsyncd 之后修改配置文件/etc/lsyncd.conf,对应的参数说明可以参考官方文档 具体如下: settings { logfile = "/var/log/lsyncd/lsyncd.log", statusFile = "/var/log/lsyncd -xzf lsyncd-2.1.5.tar.gz cd lsyncd-2.1.5/ . 文件 settings { logfile = "/var/log/lsyncd/lsyncd.log", statusFile = "/var/log/lsyncd/lsyncd.status ="-pidfile /var/run/lsyncd.pid /etc/lsyncd.conf" if [ -e /etc/sysconfig/lsyncd ]; then .
10.5.8.19 nginxB:10.5.8.20 1,实现8.19免密登陆8.20 19操作 #ssh-keygen -t rsa #ssh-copy-id root@10.5.8.20 2,安装lsyncd apt-get install lsyncd 3,定义配置文件 # cat /etc/lsyncd/lrsync_nginx.lua settings { logfile = "/var/ log/lsyncd/lsyncd.log", --定义日志文件 statusFile = "/var/log/lsyncd/lsyncd.status", --定义状态文件 maxProcesses 本地目录同步可以考虑把它设为false verbose = true }, ssh = { port = 22 } } /etc/init.d/lsyncd
rsync + lsyncd 的高效文件实时同步系统我们来直接上干货,帮你搭建一个 rsync + lsyncd 的高效文件实时同步系统。 系统架构思路核心原理lsyncd(Live Syncing Daemon)实时监听本地目录变化(inotify 机制)变化事件触发 rsync 增量同步到目标服务器支持批量事件合并,减少频繁调用 rsync 安装依赖# 源服务器 & 目标服务器都需要 rsyncsudo apt install rsync -y# 源服务器安装 lsyncdsudo apt install lsyncd -y2. SSH 免密登录(避免每次输入密码)ssh-keygen -t rsassh-copy-id user@target_host3. lsyncd 配置文件(/etc/lsyncd/lsyncd.conf.lua )settings { logfile = "/var/log/lsyncd/lsyncd.log", statusFile = "/var/log/lsyncd/lsyncd.status
3.1 安装lsyncd 安装lsyncd极为简单,已经收录在ubuntu的官方镜像源里,直接通过apt-get install lsyncd就可以。 /configure: # uzip lsyncd-master.zip # cd lsyncd-master # cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lsyncd 3.2.1 lsyncd同步配置 # cd /usr/local/lsyncd-2.1.5 # mkdir etc var # vi etc/lsyncd.conf settings { logfile ="/usr/local/lsyncd-2.1.5/var/lsyncd.log", statusFile ="/usr/local/lsyncd-2.1.5/var/lsyncd.status lsyncd -log Exec /usr/local/lsyncd-2.1.5/etc/lsyncd.conf 3.4 lsyncd.conf其它模式示例 以下配置本人都已经过验证可行,必须根据实际需要裁剪配置
安装工具 yum install epel-release -y yum install lua lua-devel lsyncd -y ---- 配置 vim /etc/lsyncd.conf settings { # 全局配置 logfile ="/var/log/lsyncd/lsyncd.log", # 日志文件存放位置 statusFile ="/var/log/lsyncd /lsyncd.status", # 状态文件存放位置 inotifyMode = "CloseWrite", # inotify监控的事件 ,默认是 CloseWrite,还可以是 Modify 累计到多少所监控的事件激活一次同步,即使后面的delay延迟时间还未到 --nodaemon = true, # 是否启用守护模式,默认 true --statusInterval = 10 # 将lsyncd settings { logfile ="/var/log/lsyncd/lsyncd.log", statusFile ="/var/log/lsyncd/lsyncd.status
lsyncd介绍lsyncd 是lua语言封装了 inotify 和 rsync 工具,采用了 Linux 内核里的 inotify 触发机制,然后通过rsync去差异同步,达到实时的效果。 相对于通过rsync+inotify实现文件实时同步,lsyncd在设置上的优势是只需配置本地服务器,无需配置远程服务器。 具体实践(配置均在本地服务器上操作)1、安装lsyncdyum install lsyncd -y2、配置lsyncd.confvim /etc/lsyncd.conf3、输入以下内容-- 全局设置settings { logfile = "/var/log/lsyncd/lsyncd.log", statusFile = "/var/log/lsyncd/lsyncd.status", statusInterval -nodaemon /etc/lsyncd.conf# 启动systemctl start lsyncd.service测试同步效果1、在本地服务器运行命令mkdir /data/test1touch
Lsyncd简单介绍 Lsyncd 使用文件系统事件接口(inotify 或 fsevents)来监视本地文件和目录的更改。 官方文档: https://lsyncd.github.io/lsyncd/ 下面介绍CentOS7下使用Lsyncd实现文件实时同步 源服务器A:192.168.31.230 目标服务器B:192.168.31.60 mv /etc/lsyncd.conf /etc/lsyncd.conf_default vi /etc/lsyncd_exclude.lst vi /etc/lsyncd.conf 添加如下内容 / etc/lsyncd.conf settings { logfile = "/var/log/lsyncd/lsyncd.log", statusFile = "/tmp/lsyncd.status start lsyncd.service tail -f /var/log/lsyncd/lsyncd.log (图片可点击放大查看) 以上就是使用Lsyncd实现文件自动同步的过程 要比之前的文章记一次利用
Lsyncd Lsyncd uses a filesystem event interface (inotify or fsevents) to watch for changes to local files [root@centos76 ~]# cd lsyncd [root@centos76 lsyncd]# . [root@localhost lsyncd]# make [root@localhost lsyncd]# make install 配置 新建配置文件如下, [root@labserver .ssh ]# cat /etc/lsyncd.conf settings { logfile = "/var/log/lsyncd.log", --日志路径 statusFile /lsyncd.service to /usr/lib/systemd/system/lsyncd.service.
Lsyncd 工具 使用文件系统事件接口 inotify 或 fsevents 来监视对本地文件和目录的更改,在很短的时间内 Lsyncd 将这些事件整理,然后生成一个或多个进程以将更改的内容同步到远程文件系统中 Lsyncd 对于将数据从安全区域同步到不太安全的区域特别有用。 Lsyncd 是一种轻量级的实时镜像解决方案,其安装相对容易,且不需要新的文件系统或块设备的支持。 参数表示Lsyncd工具的配置文件路径,需使用绝对路径 $ lsyncd -nodaemon CONFIGFILE # 将会记录又有的同步信息,输出内容会变得很多 $ lsyncd -log all CONFIGFILE # 将只记录Lsyncd生成的所有进程的命令 $ lsyncd -log Exec CONFIGFILE 本地文件之间的同步 # 使用rsync工具同步 $ lsyncd -rsync Lsyncd 的配置文件遵从 Lua 的语法格式,它的设计简单而有效,有非常多的配置选项。为了更改更好地满足不同用户的使用需求,可以在不同的层上完成 Lsyncd 的配置。
编辑同步的配置文件,lsyncd配置的更多参数学习,可以直达官方文档[2] settings { logfile = "/var/log/lsyncd.log", # 日志文件 statusFile = "/var/log/lsyncd.status", # 同步状态信息 pidfile = "/var/run/lsyncd.pid", statusInterval = 1, 配置lsyncd的服务托管 cat << EOF > /etc/systemd/system/lsyncd.service [Unit] Description=lsyncd ConditionFileIsExecutable 10 ExecStart=/usr/bin/lsyncd /etc/lsyncd.conf Restart=on-failure RestartSec=120 EnvironmentFile=-/etc 如果出现问题,可以通过查看日志进行debug lsyncd -log all /etc/lsyncd.conf tail -f /var/log/lsyncd.log 5反向代理[3] 如果你需要将
Lsync + Rsync 实时同步 安装Lsyncd是一个灵活的跨平台同步工具 Lsyncd github地址: https://github.com/axkibe/lsyncd # install from EPEL [root@linuxprobe ~]# yum --enablerepo=epel -y install lsyncd [root@linuxprobe ~]# vi [root@linuxprobe ~]# systemctl status lsyncd # 启动完成查看lsyncd状态,确保lsync启动成功 [root@linuxprobe ~]# systemctl 它除了false,还有startup、running值,请参考 Lsyncd 2.1.x ‖ Layer 4 Config ‖ Default Behavior。 lsyncd.conf可以有多个sync,各自的source,各自的target,各自的模式,互不影响。
配置文件夹同步 1.在Linode集群主节点安装Lsyncd: sudo apt-get install lsyncd 2.创建配置文件以执行同步操作。 将x.x.x.x替换为集群中另一台Linode节点的私有IP地址: settings = { logfile = "/var/log/lsyncd.log", statusFile = "/var/log/lsyncd-status.log" } sync { default.rsyncssh, delete = false, insist source 进程: service lsyncd start 4.测试Lsyncd是否已经成功启动: service lsyncd status 如果此命令返回的结果不是lsyncd is running,请仔细检查 lsyncd.conf.lua配置文件,并确保RSA公钥位于从属服务器的正确位置。
FLUSHTABLESWITHREADLOCK;SHOWMASTERSTATUS;记录File和Position值,然后解锁:UNLOCKTABLES;2.5文件同步方案2.5.1源站服务器间文件同步使用lsyncd ~/.ssh/id_rsa.pubroot@另一台服务器IP在web1上配置lsyncd同步到web2:--/etc/lsyncd.confsettings{logfile="/var/log/lsyncd /lsyncd.log",statusFile="/var/log/lsyncd/lsyncd.status",nodaemon=false,inotifyMode="CloseWrite",maxProcesses true,compress=true,_extra={"--bwlimit=10000"},--限制带宽10MB/s},ssh={port=22,}}在web2上配置反向同步到web1,确保双向同步启动lsyncd 配置相同的防护规则更新DNS或负载均衡配置负载均衡:可以使用腾讯云CLB在前端分发流量到多台WAF配置健康检查自动剔除故障节点3.2源站层扩展横向扩展:增加更多源站服务器:在新服务器上安装相同环境通过lsyncd
# 安装 lsyncdsudo apt install lsyncd # 配置 lsyncdsettings { logfile = "/var/log/lsyncd.log", statusFile = "/var/log/lsyncd-status.log" } sync { default.rsync, source = "/source/directory", target
hyperic,mrtg,graphite,云监控※ 域名解析:bind※,powerdns,dnsmasq※ 同步软件:rsync※,inotify※,sersync※,drbd※,csync2,union,lsyncd
Lsyncd - 文件监视器,它产生一个同步更改的进程(默认为 rsync)。 restic - 快速、安全、高效的备份程序 Rsnapshot - 文件系统快照实用程序。