|
发表于 2007-6-1 15:16:10
|
显示全部楼层
Incron的安装配置和使用
Incron是inotify的cron系统,与os本身的cron一样,包含一个后台守护进程(incrond)和一个事件编辑器(incrontab),与os本身的cron不同的仅仅是触发时间的是os对某个文件(夹)的操作而不是时间。
由系统事件触发的机制,对于某些应用系统来说,几乎可以做到实时性。
本次试验基于Redhat新发布的RHEL5 server(内核2.6.18)。
安装incron的需求:
1. Linux内核2.6.13或以上(编译时包含inotify)
2. Inotify 头文件(inotify.h和inotify-syscalls.h),RHEL5已经包含inotify.h且不需要inotirfy-systemcalls.h
3. GCC 4.x(manual中说GCC 3.4或以下的版本也可以,但没有做测试)
可以在inotify的站点下载以下源码包
http://inotify.aiken.cz/?section=common&page=home&lang=en
源码包:incron-0.5.5.tar.bz2
安装过程没有什么特殊,仅仅不需要configure:
# tar jxf incron-0.5.5.tar.bz2
# cd incron-0.5.5
# make
# make install
安装完毕后会得到二进制文件incrond和incrontab,且已经放到了系统的PATH中,可以直接使用。
1. 启动后台守护进程
# incrond
2. 执行incrontab,配置触发事件
# incrontab -e
格式如下:
<path> <mask> <command>
其中:
<path>:欲监控的文件(夹)
<mask>:os对监控对象发生的动作,具体的动作可以在inotify.h中查找,如下:
IN_ACCESS,即文件被访问
IN_MODIFY,文件被 write
IN_ATTRIB,文件属性被修改,如 chmod、chown、touch 等
IN_CLOSE_WRITE,可写文件被 close
IN_CLOSE_NOWRITE,不可写文件被 close
IN_OPEN,文件被 open
IN_MOVED_FROM,文件被移走,如 mv
IN_MOVED_TO,文件被移来,如 mv、cp
IN_CREATE,创建新文件
IN_DELETE,文件被删除,如 rm
IN_DELETE_SELF,自删除,即一个可执行文件在执行时删除自己
IN_MOVE_SELF,自移动,即一个可执行文件在执行时移动自己
IN_UNMOUNT,宿主文件系统被 umount
IN_CLOSE,文件被关闭,等同于(IN_CLOSE_WRITE | IN_CLOSE_NOWRITE)
IN_MOVE,文件被移动,等同于(IN_MOVED_FROM | IN_MOVED_TO)
注:上面所说的文件也包括目录,<mask>可以是多个动作,中间用逗号”,”隔开。
<command>:command可以是系统命令,也可以是脚本,但我发现不能是用系统的重定向,除非重定向写在脚本中。Command中还可以使用下面的这些变量:
$@:代表<path>,即监控对象
$#:发生系统事件的对象(例如监控了某个文件夹,其下的某个文件发生了变化,那么$#就代表了该文件名)
$%:代表<mask>,即发生的事件
举例:
/data/file1 IN_MODIFY script1 $@/$#
表示文件file1一旦被修改,就以它的绝对路径为参数执行脚本script1
By Joshua Liao |
|