inotify所能监控的事件
    INACCESS 被监控项目或者被监控目录中的条目被访问过。例如,一个打开的文件被读取。
    IN_MODIFY 被监控项目或者被监控目录中的条目被修改过。例如,一个打开的文件被修改。
    IN_ATTRIB 被监控项目或者被监控目录中条目的元数据被修改过。例如,时间戳或者许可被修改。
    IN_CLOSE_WRITE 一个打开的,等待写入的文件或目录被关闭。
    IN_CLOSE_NOWRITE 一个以只读方式打开的文件或目录被关闭。
    IN_CLOSE 一个掩码,可以很便捷地对前面提到的两个关闭事件(IN_CLOSE_WRITE | IN_CLOSE_NOWRITE)进行逻辑操作。
    IN_OPEN 文件或目录被打开。
    IN_MOVED_FROM 被监控项目或者被监控目录中的条目被移出监控区域。该事件还包含一个 cookie 来实现 IN_MOVED_FROM 与 IN_MOVED_TO 的关联。
    IN_MOVED_TO 文件或目录被移入监控区域。该事件包含一个针对 IN_MOVED_FROM 的 cookie。如果文件或目录只是被重命名,将能看到这两个事件,如果它只是被移入或移出非监控区域,将只能看到一个事件。如果移动或重命名一个被监控项目,监控将继续进行。参见下面的 IN_MOVE-SELF。
    IN_MOVE 可以很便捷地对前面提到的两个移动事件(IN_MOVED_FROM | IN_MOVED_TO)进行逻辑操作的掩码。
    IN_CREATE 在被监控目录中创建了子目录或文件。
    IN_DELETE 被监控目录中有子目录或文件被删除。
    IN_DELETE_SELF 被监控项目本身被删除。监控终止,并且将收到一个 IN_IGNORED 事件。
    IN_MOVE_SELF 监控项目本身被移动。
    inotify就是实时监控目录中文件的变化的工具 参数: -m持续监控 -r递归 -q静默,仅打印时间信息 —timefmt指定输出时间格式 — format 指定事件输出格式 %Xe事件 %w目录 %f文件 -e指定监控的事件 access访问 modify内容修改 attrib属性修改 close
    write 修改真实文件内容open打开 create创建 delete删除 umount卸载

    1. uid = root
    2. git = root
    3. use chroot = no
    4. max connection = 4
    5. pid file = /var/run/rsyncd.pid
    6. secrets file = /etc/rsyncd.pass
    7. lock file = /var/run/rsync.lock
    8. log file = /var/log/rsyncd.log
    9. [nginx_data]
    10. path = /mysql/
    11. comment = welcome to daqsoft nginx server !!
    12. auth user = daqsoft
    13. use chroot no
    14. read only = no
    15. hosts allow = 192.168.80.12/24

    image.png

    1. #!/bin/bash
    2. DET="www"
    3. RES="/root/wordpress"
    4. IP="192.168.190.210"
    5. AUTH_FILE="/etc/rsync.pwd"
    6. USER="yyt"
    7. cd $src
    8. /usr/bin/inotifywait -mrq --format '%Xe %w%f' -e delete,create,move,delete,modify,attrib,close_write ./ | while read file
    9. do
    10. IN_FILE=`echo $file | awk '{print $2}' `
    11. IN_EVENT=`echo $file | awk '{print $1}' `
    12. echo "$IN_EVENT 和 $IN_FILE"
    13. done
    14. ~
    1. #!/bin/bash
    2. SRC="/www/daqsoft/nginx/html/"
    3. DES="nginx_data"
    4. PWD="/etc/rsync.pwd"
    5. DES_IP="192.168.12.201"
    6. USER="daqsoft"
    7. cd $SRC
    8. /usr/bin/inotifywait -mrq --format '%Xe %w%f' -e create,delete,modify,close_write,attrib,move ./ | while read file
    9. do
    10. EVENT=`echo $file | awk '{print $1}' `
    11. FILE_NAME=`echo $file | awk '{print $2}'`
    12. #echo "$EVENT AND $FILE_NAME"
    13. echo "-----------------`date '+%Z %F %T'`-------------------"
    14. #echo $file
    15. if [[ $EVENT =~ 'ATTRIB' ]] || [[ $EVENT =~ 'CREATE' ]] || [[ $EVENT =~ 'MODIFY' ]] || [[ $EVENT =~ 'CLOSE_WRITE' ]] || [[ $EVENT =~ 'MOVED_TO' ]] && [[ ! $FILE_NAME =~ .*\.sw[px]$ ]] && [[ ! $FILE_NAM
    16. E =~ .*\~$ ]]
    17. #判断事件类型
    18. then
    19. #rsync -avzcR --password-file=${PWD} $(dirname ${FILLE_NAME}) ${USER}@${DES_IP}::${DES}
    20. rsync -avzcR --password-file=${PWD} $(dirname ${FILE_NAME}) ${USER}@${DES_IP}::${DES}
    21. echo "这是${EVENT}事件 "
    22. fi
    23. if [[ $EVENT =~ 'DELETE' ]] || [[ $EVENT =~ 'MOVED_FROM' ]] && [[ ! $FILE_NAME =~ .*\.sw[px]$ ]] && [[ ! $FEIL_NAME =~ .*\~$ ]]
    24. then
    25. rsync -avzR --delete --password-file=${PWD} $(dirname ${FILE_NAME}) ${USER}@${DES_IP}::${DES}
    26. echo "这是${EVENT}事件 "
    27. fi
    28. done
    1. #!/bin/bash
    2. CONF_DIR=/www/daqsoft/nginx/conf.d/
    3. cd ${CONF_DIR}
    4. /usr/bin/inotifywait -mrq --format '%Xe %w%f' -e delete,create,move,modify,attrib,close_write ./ | while read file
    5. do
    6. echo "-----------------`date '+%Z %F %T'`-------------------"
    7. EVENT=`echo $file | awk '{print $1}' `
    8. FILE_NAME=`echo $file | awk '{print $2}'`
    9. if [[ ! $FILE_NAME =~ .*\.sw[px]$ ]] && [[ ! $FILE_NAME =~ .*\~$ ]] && [[ ! ${FILE_NAME##*/} =~ ^\..* ]]
    10. then
    11. if [[ $EVENT =~ 'CREATEXIDIR' ]] || [[ $EVENT =~ 'ATTRIBXISDIR' ]]
    12. then
    13. echo "change direcotry!"
    14. continue
    15. fi
    16. docker restart nginx
    17. else
    18. echo "swap文件"
    19. fi
    20. done