inotify事件監控工具

inotify事件監控工具

 

rsync + inotify 組合的起源

image_1cpgis424sr01v9j90k115f1povp.png-59.8kB

 

inotify優缺點

優勢:監控文件系統事件變化,經過同步工具實現實時數據同步 
缺點:併發若是大於200個文件(10-100k),同步就會有延遲 
每次都是所有推送一次,但確實是增量的,也能夠只同步變化的文件,不變化的不理。 
由於監控到事件後,調用rsync同步是單進程的,而sersync爲多進程同步。
vim

 

inotify參數

image_1cpgl4ise17vk12mj1ioog7fu4h45.png-46.3kB

 

-e指定參數事件

image_1cpgl5o9v16kq25b19g2adc7ck4i.png-62.1kB


 

inotify監控搭建與測試

首先查看有沒有wget命令,沒有則須要先安裝緩存

image_1cpgjil1p9nnniv14c9nq18j529.png-21.5kB

在去/etc/yum.repos.d下備份源光盤yum文件到bak目錄bash

image_1cpgjnhrtk0r1jeh1si4c251nid2m.png-23.8kB

命令wget -O /etc/yum.repos.d/epel.repohttp://mirrors.aliyun.com/repo/epel-6.repo從阿里雲下載 
須要能上網才能夠從網上下載
併發

image_1cpgju85sp1g10e21q7b1g8ql9v9.png-50.6kB

下載完成後,清空yum緩存,生成新的雲yum緩存ide

image_1cpgkgfdt1ee719041h6j1e1mpu73b.png-52.8kB

安裝inotify-tools軟件包,命令是inotifywait工具

image_1cpgkn0qh9g3m281rui1lni4343o.png-15.2kB

 
  1. 單條件監控inotifywait -mrq --timefmt '%y %m %d %H %M' --format '%T %w%f' -e create /backup
  2. inotifywaitionotify的命令工具
  3. -mrq:-q只輸入簡短信息,-r遞歸監控整個目錄包括子目錄,-m進行不間斷持續監聽
  4. --timefmt:指定時間輸出格式%y=年 %m=月 %d=日 %H=時 %M=分 %F=年月日
  5. --format:指定輸出信息的格式%T=時間 %w=路徑 %f=文件名
  6. -e create:制定監控的事件類型,監控建立create事件

image_1cpgnaskjjso8sj148f1fl9ik69.png-13.3kB
image_1cpgncqe11jbgvn1ik1gmadnnm.png-12kB 
image_1cpgnd4otfmm1sjf1nb96ug42a13.png-15.8kB

 
  1. 多條件監控:inotifywait -mrq --format '%w%f' -e create,close_write,delete /backup
  2. inotifywaitionotify的命令工具
  3. -mrq:-q只輸入簡短信息,-r遞歸監控整個目錄包括子目錄,-m進行不間斷持續監聽
  4. --format:指定輸出信息的格式%w=路徑 %f=文件名
  5. -e create,close_write,delete:帶建立事件,寫關閉事件,刪除事件
  6. vim對寫關閉事件也好用,不過會先生成緩存文件

image_1cpgnq5ba1hrr1ncp12od12kcf6n1g.png-9.7kB 
image_1cpgntklgjvesg04ft20j1bos1t.png-24.3kB 
image_1cpgntt2g1m951i7a1klm1iv8ht82a.png-47kB

__測試

 

inotify實時監控腳本

#!/bin/bash 
Path=/data 
backup_Server=172.16.1.41 
/usr/bin/inotifywait -mrq --format '%w%f' -e create,close_write,delete /data | while read line 
do 
if [ -f $line ];then rsync -az $line --delete rsync_backup@$backup_Server::nfsbackup --password-file=/etc/rsync.password else cd $Path &&\ 
rsync -az ./ --delete rsync_backup@$backup_Server::nfsbackup --password-file=/etc/rsync.password 
fi 
done
ui

 

腳本加入開機啓動

 
  1. echo "/bin/sh /server/scripts/inotify.sh &" >> /etc/rc.local
  2. 一個& 表明從後臺開始運行該條命令
相關文章
相關標籤/搜索