rsync+inotify部署

本文详细介绍rsync工具的上行和下行同步操作,并演示如何通过rsync结合inotify实现文件的实时同步。包括rsync的基本配置、命令参数解析及常见错误处理。

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

rsync分为上行同步和下行同步      发起端和同步源的

上行同步:发起端同步数据到同步源

下行同步:发起端从同步源下载数据到发起端

发起端:管理员操作的机器就是发起端,也可以理解为客户端

同步源:数据存放的服务器叫做同步源

下行同步:

如果最下化安装的系统可能没有装rsync,使用yum安装即可:yum -y install rsync

在同步源服务器设置

修改rsync的配置文件:添加同步源服务器数据存放的路径等等相关配置,和Samba配置差不多,都是模块化设置。

 本次设置为匿名同步,可不用设置用户。

启动rsync

 为了测试效果创建测试文件

在发起端设置:

命令解释:rsync -avzH --delete 192.168.100.11::test /opt

-a   归档模式  保留文件的权限,属性等信息 相当于组合选项“-rlptgoD”

-v    显示同步过程的详细信息

-z     在传输文件的过程中压缩

-H    保留硬链接文件

--delete   删除目标位置有而原始位置没有的文件

192.168.100.11::test    同步源的ip和同步数据的逻辑名

/opt      保存在本地的路径

上行同步:

同步源不需要动,在发起端操作

为了方便测试  把opt下的test文件删除然后touch新的文件上行同步观察效果

在执行的过程中出现了error,提示的很明显,因为模块是只读的  没有权限上传,

解决方法:修改同步源的配置文件read only = no  默认是yes  然后从新启动rsync服务

 再次执行上行同步

这种情况是什么原因呢:

因为我们执行上传的命令是没有权限,但是刚刚我们修改了权限啊。。。。

rsync的程序用户默认是nobody  而我们创建的test目录是root身份创建的,其他人没有写入权。。。。

解决方法:一,修改为程序用户为root(不推荐)

                 二,给test目录提权

rsync+inotify实现实时同步

在发起端安装inotify-tools工具

  yum -y install inotify-tools

编写实时同步脚本

[root@localhost ~]# cat inotify.sh
#!/bin/bash
INOTIFY_CMD="inotifywait -mrq -e modify,create,attrib,move,delete /opt"
RSYNC_CMD="rsync -avzH --delete /opt/ 192.168.100.11::test"
$INOTIFY_CMD | while read DIRECTORY EVENT FILE
do
   $RSYNC_CMD
done
然后把脚本后台执行,在发起端对opt目录进行删除或者添加修改操作,观察同步源/test目录的变化

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值