使用rsync+inotify实现触发式实时文件同步

admin 2024年5月29日13:24:02评论15 views字数 1299阅读4分19秒阅读模式
实时同步能够在文件发生变化时立即进行同步,可以最大程度地减少数据丢失的风险,确保数据的及时性和准确性。相比之下,定时同步需要等待定时任务触发,可能会导致数据延迟,实时同步只在文件发生变化时进行同步操作,避免了定时同步可能存在的频繁无效同步,节省了系统资源和网络带宽。接下来具体介绍rsync+inotify模式如何实现触发式实时同步。

安装inotify工具

在服务端安装inotify工具:
yum install -y inotify-tools
使用rsync+inotify实现触发式实时文件同步
如果提示No package inotify-tools available,更新源后再尝试下载
yum install -y epel-release && yum -y update
inotify是一个Linux内核提供的机制,用于监视文件系统事件。它可以通过命令行工具inotifywait和inotifywatch来使用。inotifywait更侧重于等待文件系统事件的发生并执行操作,而inotifywatch更侧重于监视文件系统事件并显示统计信息,本文使用inotifywait来实现文件同步
inotifywait常见选项:
-r 或 --recursive:递归监视目录及其子目录。
-e 或 --event :指定要监视的事件类型,多个事件类型可以用逗号分隔。常见的事件类型包括modify(文件内容修改)、create(文件创建)、delete(文件删除)、move(文件移动)等。
-m 或 --monitor:持续监视目录,不退出。
-q 或 --quiet:静默模式,不输出监视事件信息。
-t 或 --timeout :设置超时时间,超过指定时间没有事件发生则退出。

使用rsync+inotify实现触发式实时文件同步

配置rsync+inotify实时同步

接下来,我们将配置rsync和inotify来实现实时文件同步:
1.生成SSH密钥对并上传公钥
在服务端生成SSH密钥对,并将公钥上传到客户端,以便实现无密码的SSH连接。
2.创建同步脚本
在服务端创建一个名为sync.sh的脚本文件,并添加以下内容:
#!/bin/bashwhile inotifywait -r -e modify,create,delete,move /data/;do ##使用inotifywait命令监视`/path/to/directory`目录及其子目录中的文件变化。-r选项表示递归监视子目录,-e modify,create,delete,move`选项表示监视文件的修改、创建、删除和移动事件。 rsync -avz /data/ [email protected]:/opt/data/ done
使用rsync+inotify实现触发式实时文件同步
    3.授予脚本执行权限并执行
chmod +x sync.sh./sync.sh ##脚本会一直运行,并在`/data/`目录中的文件发生变化时进行实时同步

    
    4.测试同步

    在服务端/data目录下新建名为12345的文件,服务端提示/data创建了12345文件,并开始发送增量文件,切换到客户端可以看到/data/目录下所有文件已实时同步到客户端/opt/data

使用rsync+inotify实现触发式实时文件同步

使用rsync+inotify实现触发式实时文件同步

原文始发于微信公众号(网络个人修炼):使用rsync+inotify实现触发式实时文件同步

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年5月29日13:24:02
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   使用rsync+inotify实现触发式实时文件同步https://cn-sec.com/archives/2790967.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息