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. ...
随机推荐
- 第七次作业——numpy统计分布显示
用np.random.normal()产生一个正态分布的随机数组,并显示出来. np.random.randn()产生一个正态分布的随机数组,并显示出来. 显示鸢尾花花瓣长度的正态分布图,曲线图,散点 ...
- Python爬虫开源项目代码,爬取微信、淘宝、豆瓣、知乎、新浪微博、QQ、去哪网等 代码整理
作者:SFLYQ 今天为大家整理了32个Python爬虫项目.整理的原因是,爬虫入门简单快速,也非常适合新入门的小伙伴培养信心.所有链接指向GitHub,祝大家玩的愉快 1.WechatSogou [ ...
- 【leetcode198 解题思路】动态规划
动态规划 https://blog.csdn.net/so_geili/article/details/53639920 最长公共子序列 https://blog.csdn.net/so_geili/ ...
- [Hive安装问题]
启动Hive时出现: Exception in thread "main" java.lang.RuntimeException: java.lang.IllegalArgumen ...
- 2018-CVTE中央研究院-自然语言处理算法工程师-电话初面问题
楼主NLP初学者一名,有幸参加2018年CVTE中央研究院自然语言处理电话面试,问题总结如下: 1.详细的介绍自己的学术论文(感觉他们非常重视这块),会问你网络的具体构造,注意力机制如何计算以及为何你 ...
- element ui 手动关闭$notify弹框
1.需求: 当用户点击 “点击下载” 后,文件导出这个弹框主动消失. 2.解决方案: 如下图所示 (需要注意的是这里的关闭是 点击弹框任意处就会关闭,如果想实现我的需求需要判断一下即可)
- dom树渲染对性能的影响
这样写会访问两次dom节点树,一次读取innerHTML,一次重写innerHTML. 当然,加载速度也是很惊人的. 用一个变量把a存起来,只读取和重写innerHTML一次. 可以看到加载时间大幅度 ...
- python基础语法二
迭代 test = "妹子有种冲我来" #可迭代对象 == 被for进行循环获取 for item in test: print(item) break #练习题: test = ...
- 4--TestNG测试报告
第一:自带测试报告(略) 第二:Reportng测试报告(略) 第三:ExtentReport--extentreports.com (1) pom.xml:不是总的pom,是文件夹下的pom < ...
- String与StringBuilder 区别
string 是不可变字符串.一旦创建不可修改,使用Insert.Remove.PadLeft.Replace.Splict等,返回都是新的字符串对象. StringBuilder 是可变字符串,大多 ...