简介: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架构实现实时同步文件和文件夹的更多相关文章

  1. CentOS7 Rsync服务搭建-Rsync+Inotify架构实现实时同步

    一.rsync 概念 1.rsyncrsync是类unix/linux系统下的数据镜像备份工具.使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH.rsync主机同 ...

  2. CentOS 6.5 rsync+inotify实现数据实时同步备份

    CentOS 6.5 rsync+inotify实现数据实时同步备份 rsync    remote sync 远程同步,同步是把数据从缓冲区同步到磁盘上去的.数据在内存缓存区完成之后还没有写入到磁盘 ...

  3. sersync基于rsync+inotify实现数据实时同步

    一.环境描述 需求:服务器A与服务器B为主备服务模式,需要保持文件一致性,现采用sersync基于rsync+inotify实现数据实时同步 主服务器A:192.168.1.23 从服务器B:192. ...

  4. CentOS7下Rsync+sersync实现数据实时同步

    近期公司要上线新项目,后台框架选型我选择当前较为流行的laravel,运行环境使用lnmp. 之前我这边项目tp32+apache,开发工具使用phpstorm. 新建/编辑文件通过phpstorm配 ...

  5. rsync+inotify实现数据实时同步

    rsync rsync是linux系统下的数据镜像备份工具.支持远程同步,本地复制,或者与其他SSH.rsync主机同步. 优点: 1).可以镜像保存整个目录树和文件系统.保存源目录整个目录树和文件系 ...

  6. 实战:rsync+inotify实现数据实时同步

    Linux 内核从 2.6.13 版本开始提供了 inotify 通知接口,用来监控文件系统的各种变化情况,如文件存取.删除.移动等.利用这一机制,可以非常方便地实现文件异动告警.增量备份,并针对目录 ...

  7. rsync+inotify磁盘数据实时同步

    一.rsync+inotify主服务器部署 1.1安装rsync [root@nginx ~]# cd /usr/src/ [root@nginx src]# tar zxvf rsync-3.0.9 ...

  8. rsync+inotify安装配置 实时同步文件

    安装 #安装inotify 工具 [root@localhost ~]# yum install inotify-tools -y 常用命令 [root@localhost ~]# inotifywa ...

  9. 利用rsync+inotify实现数据实时同步脚本文件

    将代码放在Server端,实现其它web服务器同步.首先创建rsync.shell,rsync.shell代码如下: #!/bin/bash host1=133.96.7.100 host2=133. ...

随机推荐

  1. c++ <stdarg.h> 解决变参问题的宏定义;

    在读程序的过程中遇到的va_list类型不认识,百度得到的.:http://www.cnblogs.com/hanyonglu/archive/2011/05/07/2039916.html (此例子 ...

  2. dubbo-admin 配置运行

    1.下载dubbo源码:http://dubbo.io/ 2.idea 导入maven项目 3.配置tomcat:http://localhost:8080/ 4.下载zookeeper:http:/ ...

  3. 阿里规范学习总结-不要再foreach对元素进行add()/remove()操作,

    在foreach循环中,对元素进行 remove()/add() 操作需要使用Iterator ,如果运行在多线程环境下,需要对Iterator对象枷锁. public class ForeachTe ...

  4. Oracle入门之表结构的管理

    建表的基本语法: create table table_name( field1 datatype, field1 datatype, field1 datatype, ... ) 注:table_n ...

  5. 微信小程序 画布drawImage实现图片截取

    大多数图片都大小不一,选择框的尺寸也是宽高相等的,就会有图片被压缩 解决方法: 1.可以使用画布对图片先进行截取,保存截取图片(用户自己选取,或者指定图片中心区域截取),但是对于多张图片手动截取,会影 ...

  6. Java EE设计模式(主要简单介绍工厂模式,适配器模式和模板方法模式)

    Java EE设计模式分为三种类型,共23种: 创建型模式:单例模式.抽象工厂模式.建造者模式.工厂模式.原型模式. 结构型模式:适配器模式.桥接模式.装饰模式.组合模式.外观模式.享元模式.代理模式 ...

  7. 173zrx个人简介

    码云链接:https://gitee.com/zhrx-617/codes/947dbs2fi5kw3jz8hc0ma74 效果图: 源代码: <html> <head> &l ...

  8. leetcode 415 两个字符串相加

    string addstring(string s1,string s2) { string ans=""; ; ,j=s2.length()-;i>=||j>=;i- ...

  9. [模板] 树状数组 (C++ class)

    闲来无事(其实是打了两三道树状数组题),写了个树状数组模板…… /* Author: hotwords */ template<typename tp> class BinTree { p ...

  10. springboot+ibatis 多数据源配置

    这个是boot基本版本包,因为我用的打包方式是war所以去除掉了boot内置的tomcat,但是为了方便测试又引入了内置tomcat,只要添加<scope>provided</sco ...