第一部分: 测试inotifywait不同的操作,产生哪些事件: ============shell下的操作事件============= 直接创建文件 /t/1.h CREATE /t/1.h OPEN /t/1.h ATTRIB /t/1.h CLOSE_WRITE,CLOSE 拷贝其它目录中的文件到当前目录 /t/txt1 CREATE /t/txt1 OPEN /t/txt1 CLOSE_WRITE,CLOSE 拷贝其它目录中的文件到当前目录并重命名 /t/txt11 CREATE /t/txt11 OPEN /t/txt11 CLOSE_WRITE,CLOSE 移动其它目录中的文件到当前目录 /t/txt0 CREATE /t/txt0 OPEN /t/txt0 CLOSE_WRITE,CLOSE 移动其它目录中的文件到当前目录并重命名 /t/txt00 CREATE /t/txt00 OPEN /t/txt00 CLOSE_WRITE,CLOSE 当前文件重命名 /t/txt00 MOVED_FROM /t/txt00mv MOVED_TO 文件拷贝 /t/txt11 OPEN /t/txt11cp CREATE /t/txt11cp OPEN /t/txt11cp CLOSE_WRITE,CLOSE /t/txt11 CLOSE_NOWRITE,CLOSE
dir: 直接创建目录 /t/d1 CREATE,ISDIR /t/d1 OPEN,ISDIR /t/d1 CLOSE_NOWRITE,CLOSE,ISDIR 拷贝其它目录中的目录到当前目录 /t/dir0 CREATE,ISDIR /t/dir0 OPEN,ISDIR /t/dir0 CLOSE_NOWRITE,CLOSE,ISDIR 拷贝其它目录中的目录到当前目录并重命名 /t/dir11 CREATE,ISDIR /t/dir11 OPEN,ISDIR /t/dir11 CLOSE_NOWRITE,CLOSE,ISDIR 移动其它目录中的目录到当前目录 /t/dir2 MOVED_TO,ISDIR /t/dir2 OPEN,ISDIR /t/dir2 CLOSE_NOWRITE,CLOSE,ISDIR 移动其它目录中的文件到当前目录并重命名 /t/dir33 MOVED_TO,ISDIR /t/dir33 OPEN,ISDIR /t/dir33 CLOSE_NOWRITE,CLOSE,ISDIR 目录重命名 /t/d1 MOVED_FROM,ISDIR /t/dd MOVED_TO,ISDIR /t/dd/ MOVE_SELF 目录拷贝 /t/dir33cp CREATE,ISDIR /t/dir33cp OPEN,ISDIR /t/dir33cp CLOSE_NOWRITE,CLOSE,ISDIR /t/dir33 OPEN,ISDIR /t/dir33/ OPEN,ISDIR /t/dir33 CLOSE_NOWRITE,CLOSE,ISDIR /t/dir33/ CLOSE_NOWRITE,CLOSE,ISDIR
目录树 直接创建 /t/ OPEN,ISDIR /t/x1 CREATE,ISDIR /t/x1 OPEN,ISDIR /t/x1 CLOSE_NOWRITE,CLOSE,ISDIR /t/x1/x2 CREATE,ISDIR /t/x1/x2 OPEN,ISDIR /t/x1/x2 CLOSE_NOWRITE,CLOSE,ISDIR /t/x1/x2/x3 CREATE,ISDIR /t/x1/x2/x3 OPEN,ISDIR /t/x1/x2/x3 CLOSE_NOWRITE,CLOSE,ISDIR /t/ CLOSE_NOWRITE,CLOSE,ISDIR 移动其它目录中的目录树到当前目录 /t/1a MOVED_TO,ISDIR /t/1a OPEN,ISDIR /t/1a CLOSE_NOWRITE,CLOSE,ISDIR 移动其它目录中的目录树到当前目录并重命名 /t/1bb MOVED_TO,ISDIR /t/1bb OPEN,ISDIR /t/1bb CLOSE_NOWRITE,CLOSE,ISDIR
拷贝其它目录中的目录树到当前目录 /t/1c CREATE,ISDIR /t/1c OPEN,ISDIR /t/1c CLOSE_NOWRITE,CLOSE,ISDIR /t/1c/11 CREATE,ISDIR /t/1c/11 OPEN,ISDIR /t/1c/11 CLOSE_NOWRITE,CLOSE,ISDIR /t/1c/11/111 CREATE,ISDIR /t/1c/11/111 OPEN,ISDIR /t/1c/11/111 CLOSE_NOWRITE,CLOSE,ISDIR /t/1c/11/111/1111 CREATE,ISDIR /t/1c/11/111/1111 OPEN,ISDIR /t/1c/11/111/1111 CLOSE_NOWRITE,CLOSE,ISDIR 拷贝其它目录中的目录树到当前目录并重命名 /t/1cc CREATE,ISDIR /t/1cc OPEN,ISDIR /t/1cc CLOSE_NOWRITE,CLOSE,ISDIR /t/1cc/11 CREATE,ISDIR /t/1cc/11 OPEN,ISDIR /t/1cc/11 CLOSE_NOWRITE,CLOSE,ISDIR /t/1cc/11/111 CREATE,ISDIR /t/1cc/11/111 OPEN,ISDIR /t/1cc/11/111 CLOSE_NOWRITE,CLOSE,ISDIR /t/1cc/11/111/1111 CREATE,ISDIR /t/1cc/11/111/1111 OPEN,ISDIR /t/1cc/11/111/1111 CLOSE_NOWRITE,CLOSE,ISDIR 当前目录中目录树文件拷贝 /t/1d CREATE,ISDIR /t/1d OPEN,ISDIR /t/1d CLOSE_NOWRITE,CLOSE,ISDIR /t/1a OPEN,ISDIR /t/1a/ OPEN,ISDIR /t/1a CLOSE_NOWRITE,CLOSE,ISDIR /t/1a/ CLOSE_NOWRITE,CLOSE,ISDIR /t/1d/11 CREATE,ISDIR /t/1d/11 OPEN,ISDIR /t/1d/11 CLOSE_NOWRITE,CLOSE,ISDIR /t/1a/11 OPEN,ISDIR /t/1a/11/ OPEN,ISDIR /t/1a/11 CLOSE_NOWRITE,CLOSE,ISDIR /t/1a/11/ CLOSE_NOWRITE,CLOSE,ISDIR /t/1d/11/111 CREATE,ISDIR /t/1d/11/111 OPEN,ISDIR /t/1d/11/111 CLOSE_NOWRITE,CLOSE,ISDIR /t/1a/11/111 OPEN,ISDIR /t/1a/11/111/ OPEN,ISDIR /t/1a/11/111 CLOSE_NOWRITE,CLOSE,ISDIR /t/1a/11/111/ CLOSE_NOWRITE,CLOSE,ISDIR /t/1d/11/111/1111 CREATE,ISDIR /t/1d/11/111/1111 OPEN,ISDIR /t/1d/11/111/1111 CLOSE_NOWRITE,CLOSE,ISDIR /t/1a/11/111/1111 OPEN,ISDIR /t/1a/11/111/1111/ OPEN,ISDIR /t/1a/11/111/1111 CLOSE_NOWRITE,CLOSE,ISDIR /t/1a/11/111/1111/ CLOSE_NOWRITE,CLOSE,ISDIR
目录树1级目录重命名 /t/1 MOVED_FROM,ISDIR /t/1mv MOVED_TO,ISDIR /t/1mv/ MOVE_SELF
目录树含文件 在目录树中直接创建 /t/ OPEN,ISDIR /t/ CLOSE_NOWRITE,CLOSE,ISDIR /t/1d OPEN,ISDIR /t/1d/ OPEN,ISDIR /t/1d CLOSE_NOWRITE,CLOSE,ISDIR /t/1d/ CLOSE_NOWRITE,CLOSE,ISDIR /t/1d/11 OPEN,ISDIR /t/1d/11/ OPEN,ISDIR /t/1d/11 CLOSE_NOWRITE,CLOSE,ISDIR /t/1d/11/ CLOSE_NOWRITE,CLOSE,ISDIR /t/1d/11/111 OPEN,ISDIR /t/1d/11/111/ OPEN,ISDIR /t/1d/11/111 CLOSE_NOWRITE,CLOSE,ISDIR /t/1d/11/111/ CLOSE_NOWRITE,CLOSE,ISDIR /t/1d/11/111/1111 OPEN,ISDIR /t/1d/11/111/1111/ OPEN,ISDIR /t/1d/11/111/1111 CLOSE_NOWRITE,CLOSE,ISDIR /t/1d/11/111/1111/ CLOSE_NOWRITE,CLOSE,ISDIR #以上为 tab键的产生的事件 /t/1d/11/111/1111/x CREATE /t/1d/11/111/1111/x OPEN /t/1d/11/111/1111/x ATTRIB /t/1d/11/111/1111/x CLOSE_WRITE,CLOSE
移动其它目录中目录树含文件到当前目录 /t/1g MOVED_TO,ISDIR /t/1g OPEN,ISDIR /t/1g CLOSE_NOWRITE,CLOSE,ISDIR 移动其它目录中的文件到当前目录并重命名 /t/1gg MOVED_TO,ISDIR /t/1gg OPEN,ISDIR /t/1gg CLOSE_NOWRITE,CLOSE,ISDIR
拷贝其它目录中目录树含文件到当前目录 /t/1f CREATE,ISDIR /t/1f OPEN,ISDIR /t/1f CLOSE_NOWRITE,CLOSE,ISDIR /t/1f/11 CREATE,ISDIR /t/1f/11 OPEN,ISDIR /t/1f/11 CLOSE_NOWRITE,CLOSE,ISDIR /t/1f/11/111 CREATE,ISDIR /t/1f/11/111 OPEN,ISDIR /t/1f/11/111 CLOSE_NOWRITE,CLOSE,ISDIR /t/1f/11/111/1111 CREATE,ISDIR /t/1f/11/111/1111 OPEN,ISDIR /t/1f/11/111/1111 CLOSE_NOWRITE,CLOSE,ISDIR /t/1f/11/111/1111/1111.txt CREATE /t/1f/11/111/1111/1111.txt OPEN /t/1f/11/111/1111/1111.txt CLOSE_WRITE,CLOSE 拷贝其它目录中的文件到当前目录并重命名 /t/1fcp CREATE,ISDIR /t/1fcp OPEN,ISDIR /t/1fcp CLOSE_NOWRITE,CLOSE,ISDIR /t/1fcp/11 CREATE,ISDIR /t/1fcp/11 OPEN,ISDIR /t/1fcp/11 CLOSE_NOWRITE,CLOSE,ISDIR /t/1fcp/11/111 CREATE,ISDIR /t/1fcp/11/111 OPEN,ISDIR /t/1fcp/11/111 CLOSE_NOWRITE,CLOSE,ISDIR /t/1fcp/11/111/1111 CREATE,ISDIR /t/1fcp/11/111/1111 OPEN,ISDIR /t/1fcp/11/111/1111 CLOSE_NOWRITE,CLOSE,ISDIR /t/1fcp/11/111/1111/1111.txt CREATE /t/1fcp/11/111/1111/1111.txt OPEN /t/1fcp/11/111/1111/1111.txt CLOSE_WRITE,CLOSE
当前目录树顶层目录重命名 /t/2fcpp MOVED_FROM,ISDIR /t/3fcpp MOVED_TO,ISDIR /t/3fcpp/ MOVE_SELF
当前目录树拷贝 /t/1fcpp CREATE,ISDIR /t/1fcpp OPEN,ISDIR /t/1fcpp CLOSE_NOWRITE,CLOSE,ISDIR /t/1fcp OPEN,ISDIR /t/1fcp/ OPEN,ISDIR /t/1fcp CLOSE_NOWRITE,CLOSE,ISDIR /t/1fcp/ CLOSE_NOWRITE,CLOSE,ISDIR /t/1fcpp/11 CREATE,ISDIR /t/1fcpp/11 OPEN,ISDIR /t/1fcpp/11 CLOSE_NOWRITE,CLOSE,ISDIR /t/1fcp/11 OPEN,ISDIR /t/1fcp/11/ OPEN,ISDIR /t/1fcp/11 CLOSE_NOWRITE,CLOSE,ISDIR /t/1fcp/11/ CLOSE_NOWRITE,CLOSE,ISDIR /t/1fcpp/11/111 CREATE,ISDIR /t/1fcpp/11/111 OPEN,ISDIR /t/1fcpp/11/111 CLOSE_NOWRITE,CLOSE,ISDIR /t/1fcp/11/111 OPEN,ISDIR /t/1fcp/11/111/ OPEN,ISDIR /t/1fcp/11/111 CLOSE_NOWRITE,CLOSE,ISDIR /t/1fcp/11/111/ CLOSE_NOWRITE,CLOSE,ISDIR /t/1fcpp/11/111/1111 CREATE,ISDIR /t/1fcpp/11/111/1111 OPEN,ISDIR /t/1fcpp/11/111/1111 CLOSE_NOWRITE,CLOSE,ISDIR /t/1fcp/11/111/1111 OPEN,ISDIR /t/1fcp/11/111/1111/ OPEN,ISDIR /t/1fcp/11/111/1111 CLOSE_NOWRITE,CLOSE,ISDIR
文件改权限 /t/ OPEN,ISDIR /t/1 ATTRIB /t/ CLOSE_NOWRITE,CLOSE,ISDIR 文件改主 /t/ OPEN,ISDIR /t/1 ATTRIB /t/ CLOSE_NOWRITE,CLOSE,ISDIR 文件改组 /t/ OPEN,ISDIR /t/1 ATTRIB /t/ CLOSE_NOWRITE,CLOSE,ISDIR 目录改权限 /t/ OPEN,ISDIR /t/d/ ATTRIB,ISDIR /t/d ATTRIB,ISDIR /t/ CLOSE_NOWRITE,CLOSE,ISDIR 目录改主 /t/ OPEN,ISDIR /t/d/ ATTRIB,ISDIR /t/d ATTRIB,ISDIR /t/ CLOSE_NOWRITE,CLOSE,ISDIR 目录改组 /t/ OPEN,ISDIR /t/d/ ATTRIB,ISDIR /t/d ATTRIB,ISDIR /t/ CLOSE_NOWRITE,CLOSE,ISDIR 执行tree命令 /t/1mv OPEN,ISDIR /t/1mv/ OPEN,ISDIR /t/1mv CLOSE_NOWRITE,CLOSE,ISDIR /t/1mv/ CLOSE_NOWRITE,CLOSE,ISDIR /t/1mv/11 OPEN,ISDIR /t/1mv/11/ OPEN,ISDIR /t/1mv/11 CLOSE_NOWRITE,CLOSE,ISDIR /t/1mv/11/ CLOSE_NOWRITE,CLOSE,ISDIR /t/1mv/11/111 OPEN,ISDIR /t/1mv/11/111/ OPEN,ISDIR /t/1mv/11/111 CLOSE_NOWRITE,CLOSE,ISDIR /t/1mv/11/111/ CLOSE_NOWRITE,CLOSE,ISDIR /t/1mv/11/111/1111 OPEN,ISDIR /t/1mv/11/111/1111/ OPEN,ISDIR /t/1mv/11/111/1111 CLOSE_NOWRITE,CLOSE,ISDIR /t/1mv/11/111/1111/ CLOSE_NOWRITE,CLOSE,ISDIR 执行find . -name 1111命令 /t/ OPEN,ISDIR /t/ OPEN,ISDIR /t/ CLOSE_NOWRITE,CLOSE,ISDIR /t/1mv OPEN,ISDIR /t/1mv/ OPEN,ISDIR /t/1mv CLOSE_NOWRITE,CLOSE,ISDIR /t/1mv/ CLOSE_NOWRITE,CLOSE,ISDIR /t/1mv OPEN,ISDIR /t/1mv/ OPEN,ISDIR /t/1mv CLOSE_NOWRITE,CLOSE,ISDIR /t/1mv/ CLOSE_NOWRITE,CLOSE,ISDIR /t/1mv/11 OPEN,ISDIR /t/1mv/11/ OPEN,ISDIR /t/1mv/11 CLOSE_NOWRITE,CLOSE,ISDIR /t/1mv/11/ CLOSE_NOWRITE,CLOSE,ISDIR /t/1mv/11 OPEN,ISDIR /t/1mv/11/ OPEN,ISDIR /t/1mv/11 CLOSE_NOWRITE,CLOSE,ISDIR /t/1mv/11/ CLOSE_NOWRITE,CLOSE,ISDIR /t/1mv/11/111 OPEN,ISDIR /t/1mv/11/111/ OPEN,ISDIR /t/1mv/11/111 CLOSE_NOWRITE,CLOSE,ISDIR /t/1mv/11/111/ CLOSE_NOWRITE,CLOSE,ISDIR /t/1mv/11/111 OPEN,ISDIR /t/1mv/11/111/ OPEN,ISDIR /t/1mv/11/111 CLOSE_NOWRITE,CLOSE,ISDIR /t/1mv/11/111/ CLOSE_NOWRITE,CLOSE,ISDIR /t/1mv/11/111/1111 OPEN,ISDIR /t/1mv/11/111/1111/ OPEN,ISDIR /t/1mv/11/111/1111 CLOSE_NOWRITE,CLOSE,ISDIR /t/1mv/11/111/1111/ CLOSE_NOWRITE,CLOSE,ISDIR /t/1mv/11/111/1111 OPEN,ISDIR /t/1mv/11/111/1111/ OPEN,ISDIR /t/1mv/11/111/1111 CLOSE_NOWRITE,CLOSE,ISDIR /t/1mv/11/111/1111/ CLOSE_NOWRITE,CLOSE,ISDIR /t/1mv/11/111 OPEN,ISDIR /t/1mv/11/111/ OPEN,ISDIR /t/1mv/11/111 CLOSE_NOWRITE,CLOSE,ISDIR /t/1mv/11/111/ CLOSE_NOWRITE,CLOSE,ISDIR /t/1mv/11 OPEN,ISDIR /t/1mv/11/ OPEN,ISDIR /t/1mv/11 CLOSE_NOWRITE,CLOSE,ISDIR /t/1mv/11/ CLOSE_NOWRITE,CLOSE,ISDIR /t/1mv OPEN,ISDIR /t/1mv/ OPEN,ISDIR /t/1mv CLOSE_NOWRITE,CLOSE,ISDIR /t/1mv/ CLOSE_NOWRITE,CLOSE,ISDIR /t/ OPEN,ISDIR /t/ CLOSE_NOWRITE,CLOSE,ISDIR /t/ CLOSE_NOWRITE,CLOSE,ISDIR
=================FTP下的操作事件==================== FTP上传文件 /t/1.txt CREATE /t/1.txt OPEN /t/1.txt CLOSE_WRITE,CLOSE /t/ OPEN,ISDIR /t/ CLOSE_NOWRITE,CLOSE,ISDIR
FTP文件重命名 /t/1.txtt CREATE /t/1.txt DELETE
FTP上传目录 /t/d2ftp CREATE,ISDIR /t/d2ftp OPEN,ISDIR /t/d2ftp CLOSE_NOWRITE,CLOSE,ISDIR /t/ OPEN,ISDIR /t/ CLOSE_NOWRITE,CLOSE,ISDIR
FTP目录重命名 /t/dd MOVED_FROM,ISDIR /t/ddd MOVED_TO,ISDIR /t/ddd/ MOVE_SELF
FTP上传目录树 /t/1 CREATE,ISDIR /t/1 OPEN,ISDIR /t/1 CLOSE_NOWRITE,CLOSE,ISDIR /t/ OPEN,ISDIR /t/1/11 CREATE,ISDIR /t/1/11 OPEN,ISDIR /t/1/11 CLOSE_NOWRITE,CLOSE,ISDIR /t/ CLOSE_NOWRITE,CLOSE,ISDIR /t/1/11/111 CREATE,ISDIR /t/1/11/111 OPEN,ISDIR /t/1/11/111 CLOSE_NOWRITE,CLOSE,ISDIR /t/1/11/111/1111 CREATE,ISDIR /t/1/11/111/1111 OPEN,ISDIR /t/1/11/111/1111 CLOSE_NOWRITE,CLOSE,ISDIR /t/ OPEN,ISDIR /t/ CLOSE_NOWRITE,CLOSE,ISDIR
FTP上传目录树含文件 /t/ OPEN,ISDIR /t/ CLOSE_NOWRITE,CLOSE,ISDIR /t/1 CREATE,ISDIR /t/1 OPEN,ISDIR /t/1 CLOSE_NOWRITE,CLOSE,ISDIR /t/ OPEN,ISDIR /t/1/11 CREATE,ISDIR /t/1/11 OPEN,ISDIR /t/1/11 CLOSE_NOWRITE,CLOSE,ISDIR /t/ CLOSE_NOWRITE,CLOSE,ISDIR /t/1/11/111 CREATE,ISDIR /t/1/11/111 OPEN,ISDIR /t/1/11/111 CLOSE_NOWRITE,CLOSE,ISDIR /t/1/11/111/1111 CREATE,ISDIR /t/1/11/111/1111 OPEN,ISDIR /t/1/11/111/1111 CLOSE_NOWRITE,CLOSE,ISDIR /t/1/11/111/1111/1111.txt CREATE /t/1/11/111/1111/1111.txt OPEN /t/1/11/111/1111/1111.txt CLOSE_WRITE,CLOSE /t/ OPEN,ISDIR /t/ CLOSE_NOWRITE,CLOSE,ISDIR
目录访问 /t/ OPEN,ISDIR /t/ CLOSE_NOWRITE,CLOSE,ISDIR /t/1mv OPEN,ISDIR /t/1mv/ OPEN,ISDIR /t/1mv CLOSE_NOWRITE,CLOSE,ISDIR /t/1mv/ CLOSE_NOWRITE,CLOSE,ISDIR /t/1mv/11 OPEN,ISDIR /t/1mv/11/ OPEN,ISDIR /t/1mv/11 CLOSE_NOWRITE,CLOSE,ISDIR /t/1mv/11/ CLOSE_NOWRITE,CLOSE,ISDIR
=================END====================
第二部分: 总结:
1、对于大文件创建,如果使用create事件创建,会导致文件还没有创建完,就开始传输,所以使用事件close_write(可以捕捉CLOSE_WRITE,CLOSE),例: /t/1.h CLOSE_WRITE,CLOSE rsync -ulDtpogd -e ssh /tmp/rs/filename 192.168.2.120:/tmp/rs
2、当前目录中文件重命名,使用事件moved_to(捕捉MOVED_TO),例: /t/txt00mv MOVED_TO rsync -ulDtpogd -e ssh /tmp/rs/filename 192.168.2.120:/tmp/rs
3、目录的创建,使用create(捕捉CREATE,ISDIR用于和文件创建区分,不递归传输),例: /t/d1 CREATE,ISDIR 注意:SRC目录名无"/" rsync -dultpogde ssh /tmp/rs/dirname 192.168.2.120:/tmp/rs
4、目录重命名,使用moved_to(捕捉MOVED_TO,ISDIR,递归传输),例: /t/dir2 MOVED_TO,ISDIR 注意:SRC无"/" rsync -rultpogde ssh /tmp/rs/dirname 192.168.2.120:/tmp/rs
5、文件修改元数据无操作,因为使用cp -af时也会产生很多attrib(虽然需要同步,但是如果存在大文件会出现1种介绍的问题),所以不对文件的元数据变动产生事件相关的操作。
6、目录修改元数据,使用attrib(捕捉/t/b ATTRIB,ISDIR) /t/b/ ATTRIB,ISDIR /t/b ATTRIB,ISDIR #可以使用这个事件当作脚本调用的信号 两种情况: 一种是无递归修改:配合rsync使用时不递归,使用-d选项,不加"/" rsync -dultpogde ssh /tmp/rs/dirname 192.168.2.120:/tmp/rs
一种是递归修改: rsync -rultpogde ssh /tmp/rs/dirname 192.168.2.120:/tmp/rs
注:未列出的说明已经包含在其中某一操作,产生的事件相同。
7、FTP文件重命名,加个判断吧…… /t/1.txtt CREATE /t/1.txt DELETE
8、可以使用%Xe,输出事件逗号分割会变为X分隔,使用*作为各项目字段的分割符 /t/sdf CLOSE_WRITE,CLOSE /t/sdf CLOSE_WRITEXCLOSE
==========================================
|