1. 原理:
文件在改变后文件的inode信息会随之发生改变,incron分析被监控文件的inode信息,当检测到用户设置的事件类型对应的inode信息发生改变时触发用户指定的任务。
事件类型:
IN_ACCESS: 文件被访问;
IN_MODIFY: 文件被修改;
IN_ATTRIB: 文件属性被修改,如 chmod、 chown、 touch 等;
IN_CLOSE_WRITE: 可写文件被关闭;
IN_CLOSE_NOWRITE: 不可写文件被关闭;
IN_CLOSE: 文件被关闭,等同于(IN_CLOSE_WRITE | IN_CLOSE_NOWRITE) ;
IN_OPEN: 文件被打开;
IN_MOVED_FROM: 文件被移走,如 mv ;
IN_MOVED_TO: 文件被移来,如 mv、 cp ;
IN_MOVE: 文件被移动,等同于(IN_MOVED_FROM | IN_MOVED_TO);
IN_CREATE: 创建新文件;
IN_DELETE: 文件被删除,如 rm ;
IN_DELETE_SELF: 自删除,即一个可执行文件在执行时删除自己;
IN_MOVE_SELF: 自移动,即一个可执行文件在执行时移动自己;
IN_ONESHOT: 仅监控一次事件;
IN_ONLYDIR: 只监控目录;
IN_UNMOUNT: 宿主文件系统被 umount;
2. 安装
此处以rpm包的方式进行安装。
下载incron的rpm安装包,以incron-0.5.9-1.el6.x86_64.rpm为例。
yum install incron-0.5.9-1.el6.x86_64.rpm -y #安装
3. 设置触发
touch /test.sh #新建事件出发后执行的脚本
chmod u+x test.sh
写入以下内容:
touch /root/a.txt #当事件被触发时会执行脚本test.sh,从而在/root下新建文件a.txt
incrontab -e #设置触发任务
/ IN_CREATE /root/test.sh #触发任务
设置完后保存退出。
service incrond start #启动incron服务
4. 验证是否可触发
touch /b.txt #根目录下新建文件b.txt
结果:触发事件IN_CREATE, 在/root下有文件a.txt被新建。