首页 > 其他分享 >rsync+inotify-tools实时同步数据

rsync+inotify-tools实时同步数据

时间:2024-01-16 10:24:02浏览次数:29  
标签:文件 rsync 同步 inotify tools 目录

rsync+inotify-tools实时同步数据

原创 青菜浪人 青菜浪人 2023-10-09 12:42 发表于陕西 听全文

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/ [email protected]:/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 [email protected]

安装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/ [email protected]:/host1
done

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

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

图片

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

图片

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

图片

青菜浪人

标签:文件,rsync,同步,inotify,tools,目录
From: https://www.cnblogs.com/cheyunhua/p/17967037

相关文章

  • Rsync未授权访问漏洞
    开设这个随笔主要是因为最近在学习王放do9gy老师的web漏洞解析与攻防实战。顺便完成里面的配套实验了,其实大部分靶场都是来在vulhub,相当于对人家的靶场进行依次复现了。内容可以在https://vulhub.org/#/environments/rsync/common/见到。毕竟理论是理论,实战是实战。搭建个靶场......
  • 如何让Visual Studio Tools for Unity插件用于调试你自己的Mono嵌入应用程序
       最近在测试将mono嵌入到C++应用程序中,苦于没有调试器,有时候还是不怎么方便。网上搜了一下,有VS插件MDebug、VSMonoDebugger,实际试用了一下,有点麻烦,而且似乎对Windows+VisualStudio2022支持不大好。因此想到了,Unity引擎是基于mono的,VisualStudio2022也内置了针对Unity的......
  • 详解如何在Linux(CentOS 7)命令行模式安装VMware Tools
    本例中为在Linux(以CentOS7为例)安装VMwareTools。1.首先启动CentOS7,在VMware中点击上方“VM”,点击“InstallVMwareTools...”(如已安装则显示“ReinstallVMwareTools...”)。2.在命令行输入“ls/dev”查看。3.输入“mkdir/mnt/cdrom”在/mnt目录下新建一个名为cdrom的文件夹......
  • linux环境编译 TPC-H tools
    上传压缩包复制修改makefile文件make-fmakefile可以看到dbgen和qgen是新生成的......
  • 使用devtoolset进行高效的编程开发
    随着编程语言和工具的不断发展,开发者们需要时刻保持对技术的更新和学习。而在Linux平台上,使用编程工具也需要一定的技巧和效率。本文将介绍devtoolset在编程开发中的使用,包括基本概念,安装,使用方法等等。当你完全掌握这些知识后,你将会在Linux上实现高效的编程开发。一、devtoolset......
  • SiteGround SITE TOOLS主机站点工具设置教程
    当你使用SiteGround搭建WordPress或WooCommerce网站后,你会经常登录到两个不同的网站后台:一个是SiteGround的SiteTools后台,用于进行网站的安全、速度优化、FTP工具和网站备份等技术操作;另一个是WordPress网站后台,主要用于管理网站内容、调整前台显示样式和编辑网站功能。本文我们介......
  • Mac M1芯片安装android-platform-tools
    brewinstallCaskroom/cask/android-platform-tools遇见的报错解决办法brewupdate-reset......
  • Mac M1芯片安装android-platform-tools
    brewinstallCaskroom/cask/android-platform-tools遇见的报错解决办法brewupdate-reset......
  • 【Tools】git fork 自我理解
    githuborgitlab上都有一个fork的功能,什么是fork的功能,设计改功能的逻辑是什么?根据下面github官方的介绍,个人理解fork更多用于开源项目中,由于开源项目涉及的人分散在世界,在没有取得开源软件发起人或成员信任之前,一般不会允许新加入的成员直接新建分支,这样新的开发者就很难参与......
  • rsync
    以下是一个基本的LinuxShell脚本示例,用于通过rsync实现增量同步。假设我们想要从本地目录/path/to/local/source同步到远程主机remote_host上的/path/to/remote/destination:#!/bin/bash#定义源路径和目标路径src="/path/to/local/source"dst="user@remote_host:/path/to/remo......