rsync + inotify 文件同步功能

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/ [email protected]:/test/
在这里插入图片描述
在来看看我的云主机
在这里插入图片描述
已经同步成功 OK
0.4 如何实现 每天同步,写入周期性计划任务 crontab -e
*/10 * * * * rsync --delete -avz /opt [email protected]:/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/  [email protected]:/opt
done

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

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

猜你喜欢

转载自blog.csdn.net/weixin_43546282/article/details/85007901
今日推荐