inotify事件监控工具

1,定时任务最小单位是1分,所以定时任务不能实时监控。

2.用inotify这个软件去做监控,一旦某个目录发生变换,就调用rsync去推(推出来发生变化就推,就相当于实时同步)。

3.搭建云yum仓库

(1)、下载云yum仓库

先安装wget命令。

yum -y install wget

wget -O /etc/yum.repos.d/epel.repo http:// mirrors.aliyun.com/repo/epel-6.repo(阿里yum的源地址)下载阿里yum仓库

wget -O /etc/yum.repos.d/163.repo http://mirrors.163.com/.help/CentOS6-Base-163.repo(163的yum仓库) 下载163的yum仓库

(2)、把下载的epel.repo软件包和 163.repo软件包就直接下载到了/etc/yum.repos.d   这个yum目录下

如果没有在/etc/yum.repos.d目录下,那就移动过来。

mv epel.repo /etc/yum.repos.d

mv 163.repo /etc/yum.repos.d

(3)清空yum缓存

yum -y clean all

(4)生成yum缓存

yum makecache

完成了  之后下一步

4,yum –y install inotify-tools  这样云yum搭建完成后,就去互联网找这个包去了

Which  inotifywait 查看刚才安装的工具。

5,事件监控

      -r递归查询目录

-m打印很少的信息,仅仅打印监控事件的信息

-q始终保持事件监听状态                      

-e

6,查看inotifywait 工具

开两个窗口, 左半边创建mkdir /backup

                        往里边创建touch /backup/111

(1)测试create

#: inotifywait -mrq –timefmt '%y %m %d %H %M' --format '%T %w%f' -e create /backup  打好后回车,打开右边窗口进入cd /backup

#:在backup目录下  创建touch 22这时左边窗口会有反应。

(2)测试delete

#:inotifywait -mrq –timefmt '%y %m %d %H %M' --format '%T %w%f' -e delete /backup

我删除右边backup目录下创建的 22

(3) 测试close_write

#:inotifywait -mrq --timefmt '%y %m %d %H %M' --format '%T %w%f' -e close_write /backup

这个叫写关闭

删除没反应,创建有反应,输入重定向也有反应(追加信息)

echo  “111” >> 22   

vim 内容增加也有反映。

7,mkdir -p /service/script  创建这两个目录放shell脚本

     cd /service/script进去

     touch inotify.sh 创建inotify.sh

      vim inotify.sh  打开

8,编写inotify实时监控脚本

  1.     #!/bin/bash
  2.  
  3. a=172.16.1.41 (对方的IP地址)
  4.  
  5.  
  6. /usr/bin/inotifywait -mrq --format '%w%f' -e create,close_write,delete /data | while read line
  7. do
  8. cd /data
  9. rsync -az ./ --delete rsync_backup@$a::nfsbackup --password-file=/etc/rsync.password

10.done

(2)

  1. #!/bin/bash
  2.  
  3. Path=/data
  4. a=172.16.1.41(对方的IP地址)
  5.  
  6.  
  7. /usr/bin/inotifywait -mrq --format '%w%f' -e create,close_write,delete /data | while read line
  8. do
  9. if [ -f $line ];then

10.rsync -az $line --delete rsync_backup@$a::nfsbackup --password-file=/etc/rsync.password

11.else

12.cd $Path &&\

13.rsync -az ./ --delete rsync_backup@$backup_Server::nfsbackup --password-file=/etc/rsync.password

14.fi

16.done

9,上传    (图片 附件) 到 NFS主

        WED01      读      NFS备份

        WED02      读      NFS备份

读写分离 写找主   读找备份

互联网上20%压力是写80%压力是读

原文地址:https://www.cnblogs.com/changtianwei/p/9931240.html