zoukankan      html  css  js  c++  java
  • linux使用inotify+rsync实现监控目录变化

    1. 安装inotify-tools

    下载插件
    阿里镜像站中下载相关插件,按照“centos”、“el7”、“x86_64”等标签进行筛选,例如inotify-tools-devel-3.14-9.el7.x86_64.rpm

    将插件上传至服务器

    使用root身份安装该插件
    yum -y install inotify-tools-devel-3.14-9.el7.x86_64.rpm


    2. 源端、目的端安装rsync

    下载插件
    阿里镜像站中下载相关插件,按照“centos”、“el7”、“x86_64”等标签进行筛选,例如rsync-3.1.2-10.el7.x86_64.rpm

    将插件上传至服务器

    使用root身份安装该插件
    yum -y install rsync-3.1.2-10.el7.x86_64.rpm


    3. 目的端配置rsync

    使用root登录目的服务器编辑rsync配置文件
    vi /etc/rsyncd.conf

    编辑内容并保存

    uid = root
    gid = root
    port = 873
    address = 10.20.36.160
    hosts allow = 10.20.36.223 10.20.36.36
    read only = yes
    max connections = 10
    [datadest]
    comment = web content
    path = /tmp/dest
    ignore errors
    
    • /tmp/dest目录需要提前建立并设置好权限
    • [datadest] 自定义模块名,rsync通过模块定义同步的目录,可定义多个,本示例中模块名称命名为'datadest'
    • uid=0 表示使用root用户
    • 使用hosts allow,以ip作为信任,不需要用户名/密码验证,如果使用auth users/secrets file,则客户端也需要使用用户名/密码或者指定密码文件

    启动后台服务
    rsync --daemon

    设置开机启动
    systemctl enable rsyncd.service

    启动服务
    systemctl start rsyncd.service

    查询当前服务状态
    systemctl status rsyncd.service


    4. 源端编写脚本,监控目录变化并同步至目的端

    #!/bin/bash
    inotifywait -mrq /tmp/source -e create | while read events
    do
            rsync -zrt --delete /tmp/source root@10.20.36.160::datadest
    done
    

    (本例中监控文件创建动作)

    更改脚本权限
    chmod 755 ino.sh

    执行该脚本
    ./ino.sh

    (传输失败,未完待续)

  • 相关阅读:
    PHP编程资源
    JSP+Java编程资源
    Word、Excel办公书的资源下载
    听你说
    一些好看的渐变色(配色)网站推荐
    js判断数组中是否包含某个元素
    你才是你故事的作者
    vue-color 颜色选择器插件用法介绍
    vue-cli3 导入.md文件,vue中markdown文件的解析与渲染
    新版 animate.css 在vue中的正确使用
  • 原文地址:https://www.cnblogs.com/caishuaichao/p/12892832.html
Copyright © 2011-2022 走看看