25
2025
03
11:33:32

rsync+inotify-tools实时同步数据

rsync是Linux系统下的数据镜像备份工具,可以在本地或远程系统之间同步文件和目录,支持增量备份,速度快,占用资源少,使用简单方便。

rsync特点

- 速度快,占用资源少。
- 可以使用scp、ssh等方式来传输文件也可以通过直接的socket连接。
- 支持拷贝特殊文件如链接,设备文件等
- 可以排除指定文件或目录
- 可以保持原来文件或目录的属性(权限、时间、软硬链接均不变)

安装rsync

  • 安装方式
    • 源码安装
    • yum安装
官网下载地址:https://rsync.samba.org/
  • 这里使用yum安装
dnf install rsync -y

图片

同步命令

rsync -avz    本地目录A    本地目录B    #同步整个目录A到目录B
rsync -avz    本地目录/A/    本地目录B   #只同步目录A下的数据到目录B

常用选项

--delete    删除目标目录下多余的文档
-v         显示详细操作信息
-z         传输过程中启用压缩/解压缩
-a         递归同步

本地同步

新建两个文件夹,在其中一个文件夹内复制多个文件后执行同步。

mkdir /lr
mkdir /lr2
rsync -avz /lr/ /lr1    #只同步lr文件夹内的文件到lr1文件夹内

图片

修改ping.yml文件的内容,再次执行同步

  • 可以看到,只同步了有修改的文件。

图片

远程同步文件

rsync -avz /root/ root@192.168.10.210:/host1

由于我这里配置了ssh免密认证,所以是不需要输入密码的。

图片

图片

实时同步数据

rsync+inotify-tools

inotify-tools是由Red Hat开发的一款Linux文件系统监控工具,该工具高效率、细粒度、异步地对用户空间文件进行安全、高性能的监控。

下载地址:https://sourceforge.net/projects/inotify-tools/files/inotify-tools/3.13/inotify-tools-3.13.tar.gz
  • 配置同步主机之间免密登录
ssh-keygen
ssh-copy-id root@192.168.10.210

安装inotify-tools

  • 解压源码包
#"z"表示使用gzip进行压缩和解压缩。
#"x"表示从归档文件中提取文件到当前目录。
#"v"表示在提取过程中显示详细信息,即输出过程。
#"f"表示指定要操作的归档文件名。
tar -zxvf inotify-tools-3.13.tar.gz

图片

  • 安装gcc依赖
dnf install  gcc* -y 
  • 编译安装
#--prefix指定安装目录
./configure --prefix=/usr/local/inotify && make && make install

图片

为主程序创建软链接

ln -s /usr/local/inotify/bin/inotifywait /usr/sbin/
ln -s /usr/local/inotify/bin/inotifywatch /usr/sbin/

图片

inotify常用选项

-m  持续监控
-r  递归监控
-q  减少屏幕输出信息
-e  指定监控的属性(modify(修改)、move(移动,改名)、create(创建)、delete(删除)、attrib(权限))

  • 编写实时监控脚本
#!/bin/bash
while true
do
        inotifywait -rq -e  modify,create,delete /lr/
        rsync -avz --delete /lr/ root@192.168.10.210:/host1
done

当被监控的目录内新增、修改或删除文件时就会触发监控,实时同步到远程主机目录

  • 向被监控的文件夹内复制新文件

图片

  • 此时就会触发监控,实时同步到远程主机目录

图片

  • 登录远程主机查看目录文件

图片




推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

本文链接:https://hqyman.cn/post/9711.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:
打赏





休息一下~~


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

请先 登录 再评论,若不是会员请先 注册

您的IP地址是: