rsync+inotify实现实时同步(小业务场景解决方案) ...

一、rsync功能介绍

rsync同步操作
• 命令用法
– rsync [选项...] 源目录 目标目录

• 同步与复制的差异
– 复制:完全拷贝源到目标
– 同步:增量拷贝,只传输变化过的数据

• 本地同步
– rsync [选项...] 本地目录1 本地目录2
– rsync [选项...] 本地目录1/ 本地目录2
[root@svr7 ~]# mkdir /todir
[root@svr7 ~]# rsync -a /boot /todir //同步整个文件夹
[root@svr7 ~]# rsync -a /boot/ /todir/ //只同步目录下的数据

同步控制
• rsync操作选项
– -n:测试同步过程,不做实际修改
– --delete:删除目标文件夹内多余的文档
– -a:归档模式,相当于-rlptgoD
– -v:显示详细操作信息
– -z:传输过程中启用压缩/解压

二、inotify功能介绍

• 基本用法
– inotifywait [选项] 目标文件夹

• 常用命令选项
– -m,持续监控(捕获一个事件后不退出)
– -r,递归监控、包括子目录及文件
– -q,减少屏幕输出信息
– -e,指定监视的 modify、move、create、delete、attrib 等事件类别

三、rsync+ssh远程同步

与远程的 SSH目录保持同步
– 下行:rsync [...] user@host:远程目录 本地目录
– 上行:rsync [...] 本地目录 user@host:远程目录

四、实时远程同步

虚拟机A:
一、无密码验证
1.生成公钥 私钥验证

[root@svr7 /]# ssh-keygen     #一路回车
[root@svr7 /]# ls /root/.ssh

   /root/.ssh/known_hosts     #记录ssh远程客户端标识文件

2.传递公钥 到对方机器

[root@svr7 /]# ssh-copy-id root@192.168.4.207

3.测试无需密码

rsync -avz --delete /opt/  root@192.168.4.207:/opt/

二、目录内容的监控
1.安装 inotify-tools 控制工具可调用此机制实现监控
标准的源码、编译安装即可

[root@svr7 /]# tar -xf /root/tools.tar.gz -C /
[root@svr7 /]# ls /tools/

rpm包: 利用 yum rpm -ivh 进行安装

步骤1:安装gcc与make

[root@svr7 /]# yum -y install gcc make

步骤2:tar进行解包

tar -xf  /tools/inotify-tools-3.13.tar.gz  -C   /
ls /
cd /inotify-tools-3.13
ls

步骤3: ./configure 配置,指定功能模块等选项
检测系统是否安装gcc
--prefix=路径 #指定安装目录

cd /inotify-tools-3.13
 ./configure

常见错误提示:gcc软件没有安装
checking for gcc... no
checking for cc... no
checking for cl.exe... no
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details.

步骤4:make 编译,生成可执行的二进制程序文件

cd /inotify-tools-3.13
make

步骤5:make install 安装,将编译好的文件复制到安装目录

cd /inotify-tools-3.13
make  install
[root@svr7 /]# which inotifywait     #查看是否具备该程序
/usr/local/bin/inotifywait
[root@svr7 /]# inotifywait -rq /opt/

三、书写Shell脚本

for循环 适合次数固定 的事件
while循环 适合死循环

 while  [条件]
  do
          循环执行的语句  
  done
[root@svr7 /]# vim /root/rsync.sh
  #!/bin/bash 
   while inotifywait -rqq /opt/
    do
       rsync -az --delete /opt/  root@192.168.4.207:/opt/
    done &

[root@svr7 /]# chmod +x /root/rsync.sh
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值