rsync远程传输和inotify实时同步

rsync远程传输和inotify实时同步

Rsync概述

在这里插入图片描述

1.rsync的作用组要是用来备份,通过rsync传输文件或者目录类似于ftp,其加粗样式rsync监听端口:873
2.rsync其主要特点是 1).支持本地数据备份 2). 支持异地网络数据备份 3).支持增量备份 4).大文件或者小文件都可以使用rsync
3.rsync命令的常见选项
-a归档模式包含-rlptoD
-r递归模式,同步目录使用
-l同步符号连接
-v显示详细信息(过程)
-z传输进行压缩
-p保留权限
-t保持源文件时间标记
-g保留组标识
-o保留用户标识
-H保留硬链接文件
-A保留ACL属性
-D保留设备文件特殊文件使用
–delete:同步数据删除目标源文件数据
–checksum:校验同步数据

Rsync远程同步

源端到发起端同步实验
实验环境centos7
192.168.200.111yuan端
192.168.200.112 fa端
两端都需要关闭防火墙清空规则

 systemctl stop firewalld
 setenforce 0

查看是否有rsync软件
在这里插入图片描述对主配置文件修改vim /etc/rsyncd.conf
#管理账户
uid = nobody
#管理组
gid = nobody
#是否禁锢在源目录
use chroot = yes
#rsync服务器监听的ip地址
address = 192.168.200.111
#rsync默认端口是873
port 873
#日志位置和服务的id号
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
#网络同步数据仅200段内所有的地址
hosts allow = 192.168.200.0/24
#共享模块的名字是wwwroot
[wwwroot]
#客户端同步/html里的所有数据
path=/var/www/html
#同步目录数据说明
comment = wwwroot
#同步数据是否只有读取权限
read only = no
#文件后缀不需要压缩
dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2
#同步验证账户haha
auth users = haha
#配置身份验证数据库
secrets file = /etc/rsyncd_users.db
以上就是主配置文件重要部分
下面我们在身份验证数据库添加用户

vim /etc/rsyncd_users.db

编辑用户内容要和配置里的一致
在这里插入图片描述赋予权限

 chmod 600 /etc/rsyncd_users.db

启动它+

rsync --daemon

查看是否存在看端口

netstat -lanpt |grep rsync

创建用来同步数据的目录

mkdir -p /var/www/html

cd到该目录下随便创建一个文件
在这里插入图片描述现在到发起端进行同步
创建用来同步数据的文件
mkdir html
若要想免密传输,则需要在fa端设置一环境变量

export RSYNC_PASSWORD=123456

远程同步传输命令

rsync -avz --delete haha@192.168.200.111::wwwroot /root/html

实验结果yuan端创建的文件就到fa端

在这里插入图片描述

inotify实时同步

因为rsync需要每次用命令才能同步文件传输,这里需要用到inotify软件进行优化不需要手动同步数据
我们安装 inotify-tools-3.14.tar.gz包需要解压(源码安装方法)
必须到该目录下
cd inotify-tools-3.14/

./configure && make && make install

如果出现和我一样的情况说明环境缺少了c++
在这里插入图片描述
我们用yum安装一下就行了

yum -y install  gcc-c++

然后配免密
yuan端

ssh-keygen
ssh-copy-id 192.168.200.112

实验下(不需要输入密码则免密OK)
在这里插入图片描述
编辑一个shell的脚本vim a.sh

#!/bin/bash
INW=“inotifywait -rmq -e MOVE,DELETE,CREATE,ATTRIB /var/www/html”
RSY=“rsync -azH --delete /var/www/html/ root@192.168.200.112:/root/html”
$INW | while read DIRECTORY EVENT FILE
do
$RSY
done
运行shell脚本后,yuan端在var/www/html里写得东西会全部同步到fa端上且不需要刷新

 在这里插入图片描述如果yuan端把东西删掉了,二fa端没有拿取文件的化也会消失的

在这里插入图片描述在这里插入图片描述fa端的任何操作都不会影响yuan端,比如发端删除了1 2 3 yuan端上面还是有1 2 3的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值