计划性定时同步 五、rsync 实时同步 1. 定期同步的不足 2. 实时同步的优点 3. Linux 内核的 inotify 机制 4....在同步过程中,同步源负责提供文件的原始位置,发起端应对该位置具有读取权限。 二、配置 rsync 备份源 1....192.168.10.20::rsync /var/www/html systemctl restart crond && systemctl enable crond 五、rsync 实时同步 1...定期同步的不足 执行备份的时间固定,延迟明显、实时性差 当同步源长期不变化时,密集的定期任务是不必要的 2. 实时同步的优点 一旦同步源出现变化,立即启动备份 只要同步源无变化,则不执行备份 3....将 inotify 机制与 rsync 工具相结合,可以实现触发式备份(实时同步),即只要原始位置的文档发生变化,则立即启动增量备份操作;否则处于静默等待状态。
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",
rsync服务 systemctl start rsyncd.service 检查rsync服务状态 systemctl status rsyncd.service 配置/etc/rsyncd.conf 在文件末尾添加...GNU-Linux-x86/ /usr/local/sersync 给权限 chown -R 777 /usr/local/sersync 配置/usr/local/sersync/confxml.xml 文件...local/sersync/sersync2 -d -r -o /usr/local/sersync/confxml.xml & 验证 登录到sersyncN服务器,在/opt/tongbu/目录下新建文件...分别登录到sersync01、sersync02查看/tmp/hbgslz/目录下面是否存在1.txt文件 ? ?
Tips : 通过 rsync 可以解决对实时性要求不高的数据备份需求,例如定期的备份文件服务器数据到远端服务器,对本地磁盘定期做数据镜像等 Rsync 特点 安全性高、备份迅速、支持增量备份 Rsync...而且正在发生变化的往往是其中很少的一部分,这是非常低效的方式 其次 rsync不能实时的去监测、同步数据,虽然它可以通过linux守护进程的方式进行触发同步,但是两次触发动作一定会有时间差,这样就导致了服务端和客户端数据可能出现不一致...Inotify 应用 描述: Rsync可以实现触发式的文件同步,但是通过crontab守护进程方式进行触发,同步的数据和实际数据会有差异,而inotify可以监控文件系统的各种变化,当文件有任何变动时...,就触发rsync同步,这样刚好解决了同步数据的实时性问题。...-r --password-file=/etc/rsyncd.passwd rs@192.168.200.251::backup/units/ /tmp/www/units/ WeiyiGeek.实时同步
配合任务计划,rsync能实现定时或间隔同步,配合inotify或sersync,可以实现触发式的实时同步。 rsync工作方式: rsync有三种工作方式: (1).本地文件系统上实现同步。...由上面可以知道:rsync可以本地,远程同步文件。可以定时,或者时间间隔但是不能实时!...Inotify API用于检测文件系统变化的机制。Inotify可用于检测单个文件,也可以检测整个目录。当检测的对象是一个目录的时候,目录本身和目录里的内容都会成为检测的对象。...+inotity 就可以做到实时去同步文件了 rsync的安装: yum -y install rsync service rsyncd start 配置文件相关: 省略!!...// exclude 表示不同步某一类文件 注意运行脚本的地方要在你要同步文件夹的 目录下哦 还有如果要修改脚本,必须先杀掉之前运行的脚本然后再运行修改后的脚本。否则不会生效!
这里我们可以理解为可以实现文件内容对比的scp工具。如果文件内容没变化则不会发生同步文件的操作, 否则会同步最新内容使得目标服务器的文件内容一致。...但是rsync只能做到的只是文件同步,它自身没有能力发现哪些文件内容发生了变化.你执行rsync命令让它同步哪个文件就同步哪个文件,仅此而已。...那么我们要做到2台主机之间某个目录或者文件能够达到实时同步效果,需要借助其他工具进行辅助,最好能帮我们监控某个目录下的文件,一旦目录文件发生内容变动(如内容增加、内容减少、删除、修改等等),我们获取通知之后...,再执行rsync命令,达到我们实时同步的目的。...之后我们通过自定义shell脚本,执行rsync命令,实现实时同步的目的。
可实现数据的实时同步。...inotifywatch 收集被监控的文件系统使用的统计数据,指文件系统事件发生的次数统计。 在实时同步的时候,主要是利用 inotifywait 对目录进行监控。...,目标文件也会被删除--delete-excluded :指定要在目的端删除的文件--delete-after :默认情况下,rsync是先清理目的端的文件再开始数据同步;如果使用此选项,则rsync会先进行数据同步...远程主机文件同步到主机rsync [选项] USER@HOST:SRC DEST# 本机文件同步到远程主机rsync [选项] SRC USER@HOST:DEST# 推文件# 从本地传到远端,目标文件会被写成...log/supervisor_rsync_test.logstopasgroup = truekillasgroup = truestopsignal = KILL参考:rsync+inotify实现数据实时同步
需求场景: 部署一套sftp环境,用于客户上传电子文件(合同文件或视频文件等),文件上传到sftp后立即实时同步到业务应用服务器上。...为了安全考虑,文件在首次同步后,后续再同步时就不覆盖同名文件,这样做是为了防止文件被篡改!...://www.cnblogs.com/kevingrace/p/6001252.html 3)防篡改做法:当文件被首次实时同步到应用服务器上后,立马使用chattr命令将其锁定,即禁止写入!...sftp的上传目录是/data/test,实时同步到应用服务器上的目录也是/data/test,那么应用服务器上的锁定文件的脚本为: [root@centos6-05 ~]# vim /root/chattr_test.sh...测试效果: 当sftp里上传一个新文件A,该文件会实时同步到应用服务器的/data/test 目录下。然后再修改A文件并上传覆盖到sftp目录下,则该文件就不会覆盖到应用服务器的同名文件了。
: 要同步的文件包含多少目录,可以用:find /home/www.osyunwei.com -type d | wc -l 统计,必须保证max_user_watches值大于统计结果(这里/home.../www.osyunwei.com为同步文件目录) max_user_instances: 每个用户创建inotify实例最大值 5、创建脚本,实时触发rsync进行同步 vi /usr/local/inotify...源是用了$(dirname ${INO_FILE})变量 即每次只针对性的同步发生改变的文件的目录(只同步目标文件的方法在生产环境的某些极端环境下会漏文件 现在可以在不漏文件下也有不错的速度 做到平衡...${INO_FILE}会报no such or directory错误 所以这里同步的源是被删文件或目录的上一级路径,并加上--delete来删除目标上有而源中没有的文件,这里不能做到指定文件删除,如果删除的路径越靠近根...-d "$INO_FILE" ] # 如果修改属性的是目录 则不同步,因为同步目录会发生递归扫描,等此目录下的文件发生同步时,rsync会顺带更新此目录。
在inotify-tools配合rsync实现文件实时同步方案中,操作小文件未发现弊病,而在上传一个稍微大点的文件,比如十几二十几兆的文件时,弊病就会显露: 报错日志 如图分析原因:通过ftp或者其他客户端上传一个稍大点的文件到文件同步监控目录下...,inotifywait会实时监控到此目录下该文件的创建及修改,此时上传文件对文件修改可能是每1024个字节一次写入(可能更多,根据写文件客户端而定),因此在一定时间内造成了大量的并发,因为每次修改都会触发...inotifywait检测到MODIFY类型的文件操作,同时也会调用rsync传输工具对该文件进行传输,在大量并发的情况下,对该文件的文件传输也会产生大量并发的传输,会造成io阻塞。...附上部分文件同步监控shell代码: /usr/local/bin/inotifywait -mrq --format '%Xe %w %f' \ -e create,delete...,attrib,close_write,move \ #此处删除modify事件,避免引发大量并发同步 ${path} | while read file; do
同步备份到.opt目录下,其中-r表示递归整个目录,-l选项用来备份链接文件。...o, --owner 保持文件属主信息 -g, --group 保持文件属组信息 -z, --compress 对备份的文件在传输时进行压缩处理 -delete 删除那些DST中SRC没有的文件,保证两边文件同步对齐...192.168.144.110::abc /opt //每天22:30执行脚本 servevice crond restart chkconfig crond on 三、配置rsync+inotify实时同步...chmod +x /opt/ino.sh 4.4、源服务器端测试 执行脚本后,当前终端会变成实时监控界面,需要重新打开终端操作。...在源服务器端共享模块目录下进行文件操作,然后去备份服务器下,可观察到文件已经被实时同步。
1、描述,, Lsyncd+ssh 开源lsyncd采用inotify原理监听某一个目录,如果目录内发生变化,利用rsync协议自动同步多服务器,因此lsyncd是一个轻量级的实时镜像解决方案。...细粒度的定制可以通过配置文件来实现,配置文件可以编写lua代码,这种方式简单,功能强大和灵活的配置。...#日志路径 statusFile = "/var/log/lsyncd-status.log", #状态文件 pidfile = "/var/run/lsyncd.pid", #pid文件路径... statusInterval = 1, #状态文件写入最短时间 nodaemon = false, #daemon运行 maxProcesses = 4, #最大进程... maxDelays = 1 #最大延迟 } ##多host同步 servers = { "192.168.0.10", "192.168.0.20" } ##同步规则 for _
Lsyncd 在几秒钟内将这些文件事件整理核对后,然后生成一个或多个进程以将更改同步到远程文件系统。默认使用的同步方法是rsync。因此,Lsyncd 是一种轻量级的实时镜像解决方案。...当文件或目录被重命名或移动到本地树中的新位置时,rsync+ssh 允许更有效的同步。(相比之下,plain rsync 通过删除旧文件然后重新传输整个文件来执行移动。)...官方文档: https://lsyncd.github.io/lsyncd/ 下面介绍CentOS7下使用Lsyncd实现文件实时同步 源服务器A:192.168.31.230 目标服务器B:192.168.31.60...需求:将A服务器上/var/log/nginx/目录下文件实时同步到B服务器中,并排除error.log* 1、A服务器上安装lsyncd 前提是有配置EPEL源 yum install lsyncd...lsyncd.service systemctl start lsyncd.service tail -f /var/log/lsyncd/lsyncd.log (图片可点击放大查看) 以上就是使用Lsyncd实现文件自动同步的过程
使用场景 现有服务器A和服务器B,如果服务器A的指定目录(例如 /home/paul/rsync/ )中的内容发生变更(增删改和属性变更),实时将这些变更同步到服务器B的目标目录中(例如 /home...该文件使用daemon方式同步时需要使用,此处暂不介绍。...在源端做出更改后,需要执行rsync命令才能将变更同步到目标端。 Rsync在每次同步前需要扫描整个目录。如果源目录内的文件数量比较多,扫描可能需要耗费较多的时间。...为了满足实时监听的要求,我们需要引入另一个工具:inotify。 文件系统事件监听工具inotify inotify-tools为inotify提供一个简单接口。...在这里,我们调用之前所说的rsync命令进行文件同步。
使用场景 现有服务器A和服务器B,如果服务器A的指定目录(例如 /home/paul/rsync/ )中的内容发生变更(增删改和属性变更),实时将这些变更同步到服务器B的目标目录中(例如 /home/...该文件使用daemon方式同步时需要使用,此处暂不介绍。...在源端做出更改后,需要执行rsync命令才能将变更同步到目标端。 Rsync在每次同步前需要扫描整个目录。如果源目录内的文件数量比较多,扫描可能需要耗费较多的时间。...为了满足实时监听的要求,我们需要引入另一个工具:inotify。 文件系统事件监听工具inotify inotify-tools为inotify提供一个简单接口。...在这里,我们调用之前所说的rsync命令进行文件同步。
第1章 实时同步 1.1 什么是实时同步 实时同步是一种只要当前目录触发事件,就马上同步到远程的目录。...rsync 1.2 为什么要实时同步web->nfs->backup 保证数据的连续性(定时任务是以分钟为单位的) 减少人力维护成本 1.3 实时同步工具的选择 inotify+RSYNC(x) sersync...[root@nfs ~]# ls /data/ cad88c2e57f44e93b664a48a98a47108_th.jpg tes1 test 2.5 nfs共享的data目录一旦发生变化,实时的同步至...-- 排除不想同步的文件--> 7 8 <exclude expression=...,源文件里面有什么,目标文件里面就有什么,特别危险,不开启 #是否监控目录,如果不开启他将不监控这个目录下的子文件和子目录的更改,除非有特殊要求
,达到实时的效果。...完美解决了 inotify + rsync海量文件同步带来的文件频繁发送文件列表的问题 —— 通过时间延迟或累计触发事件次数实现。 有2种方法可以安装 yum安装,前提是安装了epel更新源。.../lsyncd/var/lsyncd.log", --状态文件 statusFile = "/usr/local/lsyncd/var/lsyncd.status", --同步模式,意思就是有更新就同步...:/www/dts", --累计事件,等待rsync同步延时时间。这里设置0秒,表示实时同步。 .../lsyncd.log", --状态文件 statusFile = "/usr/local/lsyncd/var/lsyncd.status", --同步模式,意思就是有更新就同步 inotifyMode
需求说明 在web服务器中,作为代码发布机A,文件同步到服务器B,C,D等集群中,可以忽略某个文件和目录。...bashrc /root/ CREATE bb.txt /root/ OPEN bb.txt /root/ ATTRIB bb.txt /root/ CLOSE_WRITE,CLOSE bb.txt 网站实时同步脚本...test.sh 为要运行网站实时同步脚本 其中定义了要同步的网站的路径,要同步到的ip地址,哪些后缀名的文件忽略监控,同步的用户名,同步的文件列表,哪些文件不需要同步。.../test.sh > nohup_test.com 2>&1 & 生成一个文件才能触发文件同步 touch /data/wwwroot/web/www.test.com/test_rsync_`date...+%Y%m%d-%H:%M:%S`.html 删除测试文件 rm -rf /data/wwwroot/web/www.test.com/test_rsync*.html 测试文件是否同步
需求说明 在web服务器中,作为代码发布机A,文件同步到服务器B,C,D等集群中,可以忽略某个文件和目录。...bashrc /root/ CREATE bb.txt /root/ OPEN bb.txt /root/ ATTRIB bb.txt /root/ CLOSE_WRITE,CLOSE bb.txt 网站实时同步脚本...test.sh 为要运行网站实时同步脚本 其中定义了要同步的网站的路径,要同步到的ip地址,哪些后缀名的文件忽略监控,同步的用户名,同步的文件列表,哪些文件不需要同步。.../test.sh > nohup_test 2>&1 & 生成一个文件才能触发文件同步 touch /data/wwwroot/web/test/test_rsync_`date +%Y%m%d-%...H:%M:%S`.html 删除测试文件 rm -rf /data/wwwroot/web/test/test_rsync*.html 测试文件是否同步
背景:因自研日志系统改造,为容灾需要,需将主日志机的日志文件完整备份到备机,而公司内部并没有相应的系统。...Lsyncd是啥 lsyncd会密切监测本地服务器上的参照目录,当发现目录下有文件或目录变更后,立刻通知远程服务器,并通过rsync 或rsync+ssh方式实现文件同步。...这样做的好处就是,你可以利用Lsyncd搭建一个VPS同步镜像,应用场景例如CDN镜像、网站数据备份、网站搬家等等 2....安装Lsyncd 我们的服务器比较简单,基于centos的yum安装即可 yum install lsyncd 之后修改配置文件/etc/lsyncd.conf,对应的参数说明可以参考官方文档...即执行该命令的机器ip /usr/bin/rsync --address= --config=/etc/rsyncd.conf --daemon 最后启动 service lsyncd start 修改文件可以看到日志文件
领取专属 10元无门槛券
手把手带您无忧上云