CentOS7之Rsync+Inotify架构实现实时同步文件和文件夹
简介: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

文章比较乱,后面我再整理一下,大概流程就这样
CentOS7之Rsync+Inotify架构实现实时同步文件和文件夹的更多相关文章
- CentOS7 Rsync服务搭建-Rsync+Inotify架构实现实时同步
一.rsync 概念 1.rsyncrsync是类unix/linux系统下的数据镜像备份工具.使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH.rsync主机同 ...
- CentOS 6.5 rsync+inotify实现数据实时同步备份
CentOS 6.5 rsync+inotify实现数据实时同步备份 rsync remote sync 远程同步,同步是把数据从缓冲区同步到磁盘上去的.数据在内存缓存区完成之后还没有写入到磁盘 ...
- sersync基于rsync+inotify实现数据实时同步
一.环境描述 需求:服务器A与服务器B为主备服务模式,需要保持文件一致性,现采用sersync基于rsync+inotify实现数据实时同步 主服务器A:192.168.1.23 从服务器B:192. ...
- CentOS7下Rsync+sersync实现数据实时同步
近期公司要上线新项目,后台框架选型我选择当前较为流行的laravel,运行环境使用lnmp. 之前我这边项目tp32+apache,开发工具使用phpstorm. 新建/编辑文件通过phpstorm配 ...
- rsync+inotify实现数据实时同步
rsync rsync是linux系统下的数据镜像备份工具.支持远程同步,本地复制,或者与其他SSH.rsync主机同步. 优点: 1).可以镜像保存整个目录树和文件系统.保存源目录整个目录树和文件系 ...
- 实战:rsync+inotify实现数据实时同步
Linux 内核从 2.6.13 版本开始提供了 inotify 通知接口,用来监控文件系统的各种变化情况,如文件存取.删除.移动等.利用这一机制,可以非常方便地实现文件异动告警.增量备份,并针对目录 ...
- rsync+inotify磁盘数据实时同步
一.rsync+inotify主服务器部署 1.1安装rsync [root@nginx ~]# cd /usr/src/ [root@nginx src]# tar zxvf rsync-3.0.9 ...
- rsync+inotify安装配置 实时同步文件
安装 #安装inotify 工具 [root@localhost ~]# yum install inotify-tools -y 常用命令 [root@localhost ~]# inotifywa ...
- 利用rsync+inotify实现数据实时同步脚本文件
将代码放在Server端,实现其它web服务器同步.首先创建rsync.shell,rsync.shell代码如下: #!/bin/bash host1=133.96.7.100 host2=133. ...
随机推荐
- Spring MVC流程
这是spring mvc框架结构图,图片是很早在网上撸过来的,具体在哪忘了…… 早期学习Springmvc 并没有具体了解过,只知道这样用很爽,最近了解下基本结构流程及组件所在…… 执行流程 Spri ...
- mongo中的游标与数据一致性的取舍
除了特殊注释外,本文的测试结果均基于 spring-data-mongodb:1.10.6.RELEASE(spring-boot-starter:1.5.6.RELEASE),MongoDB 3.0 ...
- L343 中译英
爱显摆的人遇事总喜欢标新立异.Showoffs never miss an opportunity to draw attention to themselves by some outrageous ...
- Vue的计算属性,监视属性代码理解
1.计算属性:在computed属性对象中定义计算属性的方法,在页面中使用{{方法名}}来显示计算的结果 //计算属性 computed:{ // 计算属性值的一个方法,方法的返回值是属性值,初始化显 ...
- 选择性重传ARQ基本原理
发送发可以连续发送多个数据包,接收方对于无差错的数据包进行正常接收,对于有差错数据包进行丢弃并发送NAKn进行差错反馈,对于n号数据包之后正确到达的数据包进行缓存,直到收到重发的,正确的n号数据包,再 ...
- dos4章
批处理中的变量,我把他分为两类,分别为"系统变量"和"自定义变量" 我们现在来详解这两个变量! 一.系统变量 他们的值由系统将其根据事先定义的条件自动赋值,也就 ...
- Open Daylight integration with OpenStack: a tutorial
Open Daylight integration with OpenStack: a tutorial How to deploy OpenDaylight and integrate it wit ...
- OpenStack源码分析 Neutron源码分析(一)-----------Restful API篇
原文:https://blog.csdn.net/happyanger6/article/details/54586463 首先,先分析WSGI应用的实现. 由前面的文章http://blog.csd ...
- ABP中mapping中忽略属性
创建一个XXXXProfile继承Profile,然后在构造函数中写忽略相关的,如下 public class ProductPriceDtoProfile: Profile { /// <su ...
- 数据结构—头插法逆转单链表——空间复杂度为O(1)
#if 1 #include<stdio.h> #include<stdlib.h> #include<iostream> using namespace std; ...