zoukankan      html  css  js  c++  java
  • inoutfy与rsync进行实时同步

    更新阿里epel源

    安装镜像源

    curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo    --- 扩展源信息
    
    yum  makecache   --更新yum源信息

    安装inoutfy-tools 

    yum install -y inotify-tools
    [root@nfs01 ~]# rpm   -ql    inotify-tools
    /usr/bin/inotifywait <--- 实现对数据目录信息变化监控(重点了解的命令) /usr/bin/inotifywatch <--- 监控数据信息变化,对变化的数据进行统计

    文件目录信息

    [root@web01 inotify]# ls
    max_queued_events  max_user_instances  max_user_watches
    
    
    max_user_watches: 设置inotifywait或inotifywatch命令可以监视的文件数量(单进程)
    默认只能监控8192个文件
    
    max_user_instances: 设置每个用户可以运行的inotifywait或inotifywatch命令的进程数
    默认每个用户可以开启inotify服务128个进程
    
    max_queued_events: 设置inotify实例事件(event)队列可容纳的事件数量
    默认监控事件队列长度为16384

    部署rsync服务

    rsync客户端与服务端部署

    rsync服务端部署

    a 检查rsync软件是否已经安装
    b 编写rsync软件主配置文件
    c 创建备份目录管理用户
    d 创建备份目录,并进行授权
    e 创建认证文件,编写认证用户和密码信息,设置文件权限为600
    f 启动rsync守护进程服务

    ----------------------------------------------------------------------------------------

    rsync客户端部署

    a 检查rsync软件是否已经安装
    b 创建认证文件,编写认证用户密码信息即可,设置文件权限为600
    c 利用客户端进行数据同步测试

    rsync    -avz   /backup   rsync_backup@172.16.1.41::backup/`hostname  -i`     --passworld-file=/etc/rsync.passworld

    将inotify与rsync进行结合(shell脚本)

    rsync软件应用命令:

    rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password   

    inotify软件应用命令:

    inotifywait
    -m|--monitor 始终保持事件监听状态
    -r 进行递归监控
    -q|--quiet 将无用的输出信息,不进行显示
    --timefmt <fmt> 设定日期的格式
    man strftime 获取更多时间参数信息
    --format <fmt> 命令执行过程中,输出的信息格式

    -e 指定监控的事件信息
    man inotifywait 查看所有参数说明和所有可以监控的事件信息

    总结主要用到的事件信息:

    create创建、delete删除、moved_to移入、close_write修改

    inotifywait -mrq --timefmt "%F" --format "%T %w%f 事件信息:%e" /data <-- 相对完整的命令应用
    inotifywait -mrq --timefmt "%F" --format "%T %w%f 事件信息:%e" -e create /data <-- 指定监控什么事件信息

    inotifywait -mrq --format "%w%f" -e create,delete,moved_to,close_write /data
    以上为实现实时同步过程,所需要的重要监控命令

    编写脚本:实现inotify与rsync软件结合
    #!/bin/bash
    ####################
    inotifywait -mrq --format "%w%f" -e create,delete,moved_to,close_write /data|
    while read line
    do
    rsync -az --delete /backup  rsync_backup@172.16.1.41::backup/`hostname -i`    --password-file=/etc/rsync.password     --delete无差异同步   就是我没有你也要没有
    done
  • 相关阅读:
    数据结构解决哈希冲突方法回顾
    java线程池大小分配方案
    java线程池工作原理
    非对称密码体制
    java ThreadLocal
    jvm配置参数
    定时器深入讲解
    开发笔记三
    开发笔记二
    js证书批量生成与打包下载
  • 原文地址:https://www.cnblogs.com/Mercury-linux/p/11783497.html
Copyright © 2011-2022 走看看