zoukankan      html  css  js  c++  java
  • inotify(rsync + while)

    使用inotify实时监控某一目录下的目录或文件

    #使用yum安装inotify
    [root@nfs /date]# yum provides inotifywait
    [root@nfs /date]# yum -y install inotify-tools
    [root@nfs /date]# rpm -q inotify-tools 
    inotify-tools-3.14-9.el7.x86_64
    [root@nfs /date]# rpm -ql inotify-tools 
    /usr/bin/inotifywait   	#inotifywait在环境变量里面,可以TAB,可以直接执行			
    /usr/bin/inotifywatch
    /usr/lib64/libinotifytools.so.0
    /usr/lib64/libinotifytools.so.0.4.1
    [root@nfs /date]# rpm -qc inotify-tools 
    #参数
    -m 持续监控
    -r 递归
    -q 静默,仅打印时间信息
    --timefmt 指定输出时间格式
    --format 指定事件输出格式
    %Xe 事件
    %w 目录
    %f 文件
    -e 指定监控的事件
    access 访问
    modify 内容修改
    attrib 属性修改
    close_write 修改真实文件内容
    open 打开
    create 创建
    delete 删除
    umount 卸载
    attrib 属性
    close_write		写入并且关闭
    
    #翻译
    MODIFY		修改
    backup		备份
    close		关闭
    DELETE		删除
    CREATE		创建
    
    #测试(ctrl+c 取消实时监控)
    /usr/bin/inotifywait  -mrq  --format '%Xe  %w  %f' -e create,modify,delete,attrib,close_write  /backup
    

    脚本

    脚本1,作用:远程同步客户端 服务端的某一个目录,使两个目录里的 目录 文件 内容 一致

    [root@backup ~]# vim rsync-inotify.sh
    #!/bin/bash
    export RSYNC_PASSWORD=123
    jiankong_dir='/backup'
    rsync_user='bck'
    rsync_mkuai='backupmk'
    
    rpm -q intify-tools &>/dev/null
    [ echo $? -ne ];yum install-y inotify-tools
    
    [ -d $jiankong_dir ]||mkdir -p $jiankong_dir
    
    /usr/bin/inotifywait  -mrq  --format '%Xe  %w  %f' -e create,modify,delete,attrib,close_write $jiankong_dir | while read line;do
    rsync -az --delete $jiankong_dir/ ${rsync_user}@10.0.0.41::${rsync_mkuai}
    done &
    

    脚本2,同一区域网下,一台主机监控另一台主机的某个目录,如果该目录下目录 文件 内容变动,发邮件

    #!/bin/bash
    export RSYNC_PASSWORD=123
    jiankong_dir='/backup'
    rsync_user='bck'
    rsync_mkuai='backupmk'
    
    if [ ! -d $jiankong_dir ];then
            mkdir -p $jiankong_dir
    fi
    
    ssh 10.0.0.8 "/usr/bin/inotifywait  -mrq  --format '%Xe  %w  %f' -e create,modify,delete,attrib,close_write $jiankong_dir" | while read line;do
            echo '这个智障需求,是李某鹏提出来的'| mail -s 'sha X' 133411023@qq.com
    done &
    

    脚本3,监控一台主机的某个目录,如果该目录下目录 文件 内容变动,发邮件

    #!/bin/bash
    export RSYNC_PASSWORD=123
    jiankong_dir='/backup'
    rsync_user='bck'
    rsync_mkuai='backupmk'
    
    if [ ! -d $jiankong_dir ];then
            mkdir -p $jiankong_dir
    fi
    /usr/bin/inotifywait  -mrq  --format '%Xe  %w  %f' -e create,modify,delete,attrib,close_write $jiankong_dir | while read line;do
            echo "$(date +%F-%T)_${jiankong_dir} 有变化啦,赶紧去看看吧,妖兽啦~~~" |mail -s 'xxx' 12345678@qq.com
    done &
    
  • 相关阅读:
    socket学习笔记——获取域名与IP(linux)
    socket学习笔记——实现收发文件(Windows)
    socket学习笔记——IO口的基本操作(读、写)
    Microsoft Visual C++ 2010(86) Redistributable不能安装完美解决
    AD转换精度的计算
    cuda编程基础
    CUDA中并行规约(Parallel Reduction)的优化
    Warp divergence
    提取图片中文字
    GPU基本概念详解
  • 原文地址:https://www.cnblogs.com/syy1757528181/p/12853368.html
Copyright © 2011-2022 走看看