rsync + inotify 文件同步功能

本文详细介绍rsync命令的使用方法,包括基本同步、增量同步、远程同步及自动化同步策略。通过实例展示如何结合inotify实现文件实时同步,适用于服务器数据同步场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

rsync同步服务与cp命令有些相似,都是拷贝数据。
cp只能复制:完全拷贝源到目标
rsync可以同步:增量拷贝,只传输变化过程中的数据
命令用法
rsync [选项…] 源目录/ 目标目录 #把源目录同步到目标目录
常见的选项: -n 测试同步过程,不做实际修改
–delete 删除目标文件多余的文档
-a 归档模式,(保持源文件的所有熟悉与目标文件相同)
-v 显示详细操作信息
-z 传输过程中启用压缩/解压
创建一个目录,并拷贝几个文件到其中
mkdir /dir1 &&mkdir /nsd01
cp /etc/passwd /etc/group /etc/fstab /dir1/ #给源目录拷贝几个文件
在这里插入图片描述
然后执行rsync 同步命令 就能看到 将源目录文件拷贝到新的目录中
我们再在源文件中写入新的内容时,我们在执行rsync命令就会发现只同步新的文件
在这里插入图片描述
此时就会看到只同步1.txt文件内容
0.1我们文件内容改变时,也会同步到目标目录
在这里插入图片描述
0.2 如果目标文件夹多了文件,但是我们要保持源文件与目标文件一致时我们需要添加一个选项,–delete
rsync --delete -avz /dir1/ /stu01
在这里插入图片描述
会自动将目标的文件的新文件删除,保持与源同步。
0.3 rsync+ssh远程同步
#我在这里演示下如何从我的虚拟机 同步到我的云主机
rsync --delete -avz /zhangfan/ root@106.13.0.129:/test/
在这里插入图片描述
在来看看我的云主机
在这里插入图片描述
已经同步成功 OK
0.4 如何实现 每天同步,写入周期性计划任务 crontab -e
*/10 * * * * rsync --delete -avz /opt root@192.168.4.207:/opt/
#每10分钟同步一次

0.5 rsync + inotify 文件同步功能
第一步 源码安装 inotify
在这里插入图片描述
./configure
make && make install
inotifywait +[选项] + 目标文件夹 #有这个命令证明安装成功
inotifywait的基本用法
-m 持续监控
-r 递归监控
-q 减少屏幕输出
-e 指定监控的modify . move create delete attrib
inotifywait -mrq /root/zf001/
在这里插入图片描述
写shell脚本 将rsync 与inotifywait 连用

#!/bin/bash
while   inotifywait -rq /opt  &> /dev/null 
do
 rsync --delete -az  /opt/  root@106.13.0.129:/opt
done

然后查看该目录下的文件,这是我的虚拟机[在这里插入图片描述]
在这里插入图片描述
最后查看我的云主机

此处已经确认我的虚拟机 opt目录下的文件已经完成和我的云主机目录正在同步
#需要注意的是 两台服务器要设置ssh 无密码登陆
ssh-keygen -t rsa
ssh-copy-id root@192.168.1.1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值