inotify

来源:互联网 发布:lol网络正常ping高 编辑:程序博客网 时间:2024/05/17 02:45
1.下载 inotify 
http://pan.baidu.com/s/1hrr2LoC
2.解压 inotify
tar xvf inotify-tools.tar
3.将 inotify 放在你喜欢的目录下
mv inotify-tools /usr/local/
4.inotifywait 的作用
inotifywait 命令中的 -m 选项表示 monitor ,即开启监视。-r 选项表示递归监视,比如上面监视整个 /root 目录,如果在其中的子目录下修改文件也是能被观察到的。
还可以用 -e 选项指定要监控的“事件”(events),比如:
   1: inotifywait -rme modify,attrib,move,close_write,create,delete,delete_self > /root/test.txt
 
如果不加参数-e的话,默认就是监控所有的事件

5.通过脚本实现监控,将脚本以后台运行

#!/bin/bash

INOTIFY_RSYNC_LOG_DIR=/var/log/inotify_rsync
if [ -d "$INOTIFY_RSYNC_LOG_DIR" ]
then
        :
else
        mkdir -p $INOTIFY_RSYNC_LOG_DIR
fi

INOTIFY_RSYNC_LOG_FILE=$INOTIFY_RSYNC_LOG_DIR/inotify_rsync_contract.log
echo >$INOTIFY_RSYNC_LOG_FILE

INWT=/usr/local/inotify-tools/bin/inotifywait
RSYNC=/usr/bin/rsync

SRC_FS1=/nfs01/XXX

DES_HOST1=要同步过去的ip
DES_USER=同步过去的主机的用户名

DES_MODULE1=rsync 中需要同步过去的模块

$INWT -mrq --timefmt '%Y/%m/%d %H:%M' --format '%T %w%f%e' -e close_write,create,move,delete,modify $SRC_FS1 | while read FILES 
do
        $RSYNC -avz  --password-file=/etc/rsyncd.secrets  $SRC_FS1 ${DES_USER}@${DES_HOST1}::${DES_MODULE1} 
        echo "$FILES  was rsynced"  >>$INOTIFY_RSYNC_LOG_FILE 2>&1
done
0 0