博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CentOS7之Rsync+Inotify架构实现实时同步文件和文件夹
阅读量:6912 次
发布时间:2019-06-27

本文共 1914 字,大约阅读时间需要 6 分钟。

简介:rsync是用来同步文件和文件夹的,inotify是用来实现监听变动而自动同步的

OS:Centos7.3

服务器端:172.16.13.157

客 户 端  :172.16.13.156

目     标  :客户端文件夹内容变动后,自动同步到客户端上,使内容保持一致

下载https://github.com/rvoicilas/inotify-tools/wiki

 

部署步骤如下

本脚本主要分为三个部分,第一部分设置rsync服务器,第二部分在客户端上测试rsync功能能否正常使用,第三部分测试文件夹自动检测修改并同步

两台主机都执行:

关掉防火墙和selinux
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i "s/enforcing/disabled/" /etc/selinux/config

第一部分:(需要根据情况修改对应的ip等内容)

#服务器端:
yum install rsync gcc -y
#设置目录
cat >> /etc/rsyncd.conf <<EOF #这里有坑,我直接复制到脚本里,结果制表符变成^I导致一直报错不存在目录。查看有没有复制正确,使用cat -A 查看文件,没有看到异常的符号就可以了,我后面是手动打的,没有复制
[test]
        path = /test                 #本地共享目录
        auth user = user1      #指定用户同步
        secrets file = /etc/rsyncd.secrets      #指定保存用户密码文件
EOF
#启动服务
rsync --daemon
netstat -anpt|grep 873

cat >> /etc/rsyncd.secrets <<EOF

user1:123
EOF

chmod 600 /etc/rsyncd.secrets

mkdir /test
touch /test/file{1..10}
#执行完上面步骤后,可以尝试在客户端上执行rsync -av user1@172.16.13.158::test /date -a归档-v详细输出,目的是将158服务器上的test文件夹 同步到客户端上的/date文件夹下
tar -zxvf inotify-tools*

rm -rf *.gz

cd inotify-tools*
./configure && make && make install

vi /tmp/1.sh

#!/bin/bash
/usr/local/bin/inotifywait -mrq -e modify,create,move,delete,attrib /node1 |while read events -m,–monitor 始终保持事件监听状态 -r,–recursive 递归查询目录
-q,–quiet 只打印监控事件的信息 -e,–event 后面指定删、增、改等事件
do
rsync -a --delete /node1 172.16.13.159::test #-a归档模式,表示以递归方式传输文件,并保持所有文件属性,等价于 --delete 删除那些接收端还有而发送端已经不存在的文件
echo "`date +'%F %T'` 出现事件 $events" >>/tmp/rsync.log 2>&1
done

 

客户端:

yum install rsync -y
rsync -a 172.16.13.158:: #正常会显示test(这个test就是服务器上的那个文件夹)
rsync -av user1@172.16.13.158::test /date
cd /date/
ls
cat >> /etc/rsyncd.conf << EOF
[test]
path=/node2/
read only=false
uid=root
gid=root
EOF
[root@bp node2]#
mkdir /node2
rsync --daemon
netstat -tlnp|grep 873
cd /node2/
ls
cd node1/
ls

服务器端:

mkdir /node1
touch /node1/testa{1..5}
nohup sh /tmp/1.sh &
echo "aaa">>/node1/file1

 

文章比较乱,后面我再整理一下,大概流程就这样

转载于:https://www.cnblogs.com/biaopei/p/10335427.html

你可能感兴趣的文章
老男孩教育每日一题-第125天-显示文件oldboy.txt的第20行到30行请问如何做?
查看>>
Tomcat的负载均衡(apache的mod_jk来实现)
查看>>
Win8上iis配置
查看>>
Confluence 6 配置 Office 转换器
查看>>
Spring中属性文件properties的读取与使用
查看>>
vShield保护虚拟化环境一例
查看>>
云计算与虚拟化概述-你不得不知的云计算与虚拟化基础知识
查看>>
在VMmware中安装CentOs 6.6,kdump启动失败的原因
查看>>
iOS各种绘图代码整合
查看>>
Lambda表达式-Stream简介
查看>>
Web开发技术--oscache教程
查看>>
C# 将类的内容写成JSON格式的字符串
查看>>
Android SqliteManager 源码
查看>>
iSCSI, FC和FCoE的比较和适用场景
查看>>
MySQL - 学习入门
查看>>
IT从业人员关注哪些问题
查看>>
Windows 2012 Hyper –V 3.0 New Functions
查看>>
maven部分插件配置demo
查看>>
BZOJ 2818GCD
查看>>
提交包到iTunes Connect时构建版本“正在处理”后直接消失的问题
查看>>