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. ... 
随机推荐
- LeetCode 145 二叉树的后序遍历(非递归)
			题目: 给定一个二叉树,返回它的 后序 遍历. 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [3,2,1] 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 解题思路: 1 ... 
- 初读"Thinking in Java"读书笔记之第八章 --- 多态
			再论向上转型 在某些方法中,仅接收基类作为参数,而不是特殊的导出类,会使得程序更容易扩展. 转机 方法调用绑定 前期绑定(编译期绑定):在编译期将一个方法调用和方法主体关联起来. 后期绑定(动态绑定或 ... 
- Asp.net APP 重置密码的方式
			在开发ASP.NET WEB APP的时候,时间长了容易忘记最初设置的密码,即使打开数据库也不好重置,因为密码都是加密存储在数据库中的.下面是几种通过代码重置密码的方式: 第一种: string re ... 
- css之positon与z-index
			在网页设计中,position属性的使用是非常重要的.有时如果不能认识清楚这个属性,将会给我们带来很多意想不到的困难. position属性共有四种不同的定位方法,分别是static.fixed.re ... 
- Thymeleaf中href与 th:href的区别
			语法格式如下: <a th:href="@{/channel/page/add}">添加渠道 </a> <a href="/channel/ ... 
- 解决Chrome浏览器访问https提示“您的连接不是私密连接”的问题
			安装fiddler后,使用Chrome访问https网站时,可能会出现以下错误,本文说明如何解决此类问题: “您的连接不是私密连接”.“NET::ERR_CERT_AUTHORITY_INVALID” ... 
- Request.ServerVariables参数说明
			Request.ServerVariables["SERVER_NAME"] '获取服务器IP Request.ServerVariables["HTTP_REFERER ... 
- Archlinux配置~小米笔记本Air 13.3英寸版本
			1 .zsh echo $ SHELL \\查看当前正在使用shell: pacman -S zsh zsh-syntax-highlighting git wget wget https://raw ... 
- oracle 数据库中某个字段逗号分隔,得到对应列中的个数(列转行)实现方法
			由于各种原因,数据的原则问题,导致某个字段上出现多个数据(依据分隔符隔开),比如 name 字段为 张三;李四;王五等等 需求:求一张表中name字段中出现的个数: 想要得到的结果为: 对应的sql语 ... 
- pyCharm django 中新加app
			1.在manage.py@djangotest中输入命令: 1.startapp realnameauth ---新建一个app,名字为realnameauth 2.在 django 项目中的 ... 
