rsync+inotify实时数据同步

Remote Sync,远程同步

1,rsync命令用法
格式:rsync [选项..] 源目录 目标目录
区别:同步与复制的差异
复制:完全拷贝源到目标
同步:增量拷贝,只传输变化过的数据

2,本地同步
rsync [选项..] 本地目录1 本地目录2 #把目录1同步到目录2下
rsync [选项..] 本地目录1/ 本地目录2 #把目录1下的数据同步到目录2下
-a :归档模式,相当于-rlptgoD
-v :显示详细信息
-z :传输过程中启用压缩/解压
-n :测试同步过程,不做实际修改 #与-avz连用
--delete :删除目标文件夹内多余的文档 #与-avz连用

3,远程同步
rsync+ssh
--命令
rsync [email protected]:远程目录/ #列出ssh服务端资源
rsync [选项..] [email protected]:远程目录 本地目录 #下行(下载) 不常用
rsync [选项..] 本地目录 [email protected]:远程目录 #上行(上传) 常用
-a :归档模式,相当于-rlptgoD
-v :显示详细信息
-z :传输过程中启用压缩/解压
-n :测试同步过程,不做实际修改 #与-avz连用
--delete :删除目标文件夹内多余的文档 #与-avz连用
提示:同步目录时在目录后加/,表示同步目录里的数据;同步目录不加/,表示同步此目录。

4,实现实时同步
1)部署公钥、私钥,实现ssh无密码验证
[[email protected] /]# ssh-keygen #虚拟机A生成公钥、私钥 一路回车
[[email protected] /]# ls /root/.ssh #公钥、私钥生成的位置
id_rsa id_rsa.pub known_hosts
[[email protected] /]# ssh-copy-id [email protected] #传递公钥到目标主机(入虚拟机B)
[[email protected] ~]# ls /root/.ssh #查看上传到虚拟机B的公钥
authorized_keys #上传到客户机的公钥文件

2)inotify实时同步
--源码安装inotify-tools工具,实现监控目录内容的变化
[[email protected] /]# mkdir /myrpm
[[email protected] /]# tar -xf /tools/inotify-tools-3.13.tar.gz -C /myrpm #减压
[[email protected] /]# yum -y install gcc make #安装编译环境gcc make
[[email protected] /]# cd /myrpm/inotify-tools-3.13/
[[email protected] inotify-tools-3.13]# ./configure #生成Makefile文件
[[email protected] inotify-tools-3.13]# make #编译成二进制文件
[[email protected] inotify-tools-3.13]# make install #安装
[[email protected] inotify-tools-3.13]# which inotifywait #查看命令位置
/usr/local/bin/inotifywait

--inotifywait基本用法
inotifywait [选项] 目标文件夹
-m :持续监控(捕获一个事件后不退出)
-r :递归监控,包括子目录及文件
-q :减少屏幕输出信息
-qq:无屏幕输出信息
-e :指定监控的modify move create delete attrib等事件类别

3)书写shell 脚本
--利用while循环来实现反复检查单次监控
语法:
while [ 条件 ]
do
循环执行
done

--实现
#vim /jluocc/rsync.sh
#/bin/bash
while inotifywait -rqq /opt
do
rsync -az --delete /opt/ [email protected]:/opt #同步本地opt目录下的数据到另一台主机的/opt目录下
done
#chmod +x /jluocc/rysnc.sh #给脚本执行权限
#/jluocc/rsync.sh #运行脚本达到实时数据同步

4)实现开机运行数据同步脚本
#vim /etc/rc.local #打开系统开机默认运行文件
/jluocc/rsync.sh #在文件里写入刚才写的脚本的绝对路径
#chmod +x /etc/rc.local #rc.local默认没有执行权限,需要赋予执行权限

5,总结
rsync:实现数据同步
inotifywait:实现监控指定目录下的数据变化,发生变化返回相应结果
shell脚本:实现inotifywait实时监控,一旦数据变化,将实现rsync数据同步,达到数据的实时同步

原文地址:http://blog.51cto.com/14050800/2312386

时间: 2024-09-29 08:30:07

rsync+inotify实时数据同步的相关文章

rsync+inotify实时数据同步单目录实战

rsync+inotify实时数据同步单目录实战 inotify是一个强大的.细粒度的.异步的文件系统事件监控机制,linux内核从2.6.13起加入了inotify支持,通过inotify可以监控文件系统中添加.删除.修改.移动等各种事件,利用这个内核接口,第三方软件可以监控文件系统下文件的各种变化情况,而inotify-tools正是实施监控的软件. inotify配置是建立在rsync服务基础上的配置过程 操作系统 主机名 网卡eth0 默认网关 用途 [email protected]

rsync+inotify实时数据同步多目录实战

rsync+inotify实时数据同步多目录实战 inotify配置是建立在rsync服务基础上的配置过程 操作系统 主机名 网卡eth0 默认网关 用途 [email protected] 192.168.1.111 192.168.1.1 Rsync服务端 [email protected] 192.168.1.121 192.168.1.1 Rsync 节点 子网掩码均为255.255.255.0 具体需求: 要求在58server1上以rsync守护进程的方式部署rsync服务,使得[e

Rsync+inotify 实时数据同步 inotify master 端的配置

强大的,细致的,异步的文件系统事件监控机制.Linux 内科从 2.6.13 起支持 inotify Inotify 实现的几款软件:Inotify,sersync,lsyncd ※Inotify 实施准备前提:rsync daemon 服务配置成功,并且客户端可以推送和拉取数据,才能够 成功配置 inotify 服务 #显示以下三个文件则证明支持 inotify 服务 2.6.32-358.el6.x86_64 [[email protected] ~]# ls -l /proc/sys/fs

rsync+inotify实时数据同步

yum 安装rsync yum install -y rsync vi /etc/xinetd.d/rsync yum install -y xinet* /etc/init.d/xinetd start 以上是安装服务,很多情况只用这个命令就可以了,不需要安装这个服务 vim /etc/rsyncd.conf      //该rsyncd.conf不存在,需要自己手动建 port=873 log file=/var/log/rsync.log  #指定日志 pid file=/var/run/

rsync+inotify实时数据的同步实例

rsync+inotify实时数据的同步 一.rsync+inotify的组合为什么会出现?? rsync缺陷: 1.由于rsync在实施大量数据备份时,工作方式是扫描整个数据文 件,其实发生更改  的只是一小部分,导致过多的占用系统资源.                2.rsync不能实时的去监测.同步数据,虽然它可以通过linux守护进程的方式进行触发同步,但是两次触发动作一定会有时间差,这样就导致了服务端和客户端数据  可能出现不一致,无法在应用故障时完全的恢复数据. inotify优点

利用rsync+inotify实现数据同步

利用rsync+inotify实现数据同步 一.rsync概念: rsync是Linux系统下文件同步可数据传输的工具,采用rsync算法使客户机与服务器,主服务器与 备份服务器数据同步.rsync也能实现中断后恢复传输.rsync支持增量备份. 二.rsync的模式: 1.本地模式. 2.远程shell模式 3.查询模式 4.C/S模式 安装rsync: tar xvf rsync-3.0.9.tar.gz cd rsync-3.0.9 ./configure make && make

Rsync+Sersync实时数据同步

sersync实时数据同步 Rsync+Inotify-tools与Rsync+sersync这两种架构有什么区别? 1.Rsync+Inotify-tools (1):Inotify-tools只能记录下被监听的目录发生了变化(包括增加.删除.修改),并没有把具体是哪个文件或者哪个目录发生了变化记录下来: (2):rsync在同步的时候,并不知道具体是哪个文件或者哪个目录发生了变化,每次都是对整个目录进行同步,当数据量很大时,整个目录同步非常耗时(rsync要对整个目录遍历查找对比文件),因此

rsync+inotify-tools实时数据同步配置实战

实验环境的准备: 源服务器:10.0.0.130 目标服务器:10.0.0.139 一.在源服务器安装Rsync服务端 1.关闭SELINUX vi /etc/selinux/config #编辑防火墙配置文件 #SELINUX=enforcing #注释掉 #SELINUXTYPE=targeted #注释掉 SELINUX=disabled #增加 :wq! #保存,退出 setenforce 0  #立即生效 2.开启防火墙tcp 873端口(Rsync默认端口) vi /etc/sysc

Centos6安装配置rsync+inotify实时单向同步

实验环境: Server : 192.168.9.109  rsync+inotify WEB1:192.168.9.106   rsync server WEB2:192.168.9.104   rsync server Server为分发机,有内容更新则推送rsync server 注:也可以WEB到Server拉取数据 (1)Server下载安装rsync+inotify 下载安装rsync #wget https://download.samba.org/pub/rsync/rsync-