当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 5 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : inotify持续精确触发事件问题
帖子发表于 : 2010-08-18 15:16 

注册: 2008-11-08 18:34
帖子: 627
送出感谢: 0 次
接收感谢: 1
写perl程序玩
每次都要chmod a+x xxx.pl实在恶心
代码:
apt-get install inotify-tools

多出来两个工具
inotifywait inotifywatch

开一个终端执行监控
代码:
while inotifywait -e create,moved_to -r --format '%:e %f' ~/perl;do chmod -R a+x ~/perl;done


这样每次其他终端用vim写完pl保存之后,就可以直接./xxx.pl执行了
虽然解决我的烦心事

但是发现这种监控写法有个缺陷,因为监控执行的过程是每创建一个新文件,inotifywait就重新启动一次(在高并发的情况下,显然在这个时间差里进来的文件是要露掉的)

如果让inotifywait 一直处于监控状态 可以用-m参数
代码:
inotifywait -m -e create,moved_to -r --format '%:e %f' ~/perl


问题:在带了-m参数的情况下 如何触发事件(最好能精确的触发事件,chmod 精确到具体的文件名,包括~/perl下的子目录下新建xxx.pl的情况)


_________________
气血鼓荡,身体发胀,偶飘上头,三时舒畅


页首
 用户资料  
 
2 楼 
 文章标题 : Re: inotify持续精确触发事件问题
帖子发表于 : 2010-08-18 17:50 

注册: 2008-11-08 18:34
帖子: 627
送出感谢: 0 次
接收感谢: 1
代码:
inotifywait -m -e create,moved_to -r --format '%w%f' ~/perl|while read i;do if [ `echo $i|grep -Po '.*.pl$'` ] ;then chmod a+x $i;fi;done

:em06 我X昨天下班走的急,居然粘贴错了,已更正


_________________
气血鼓荡,身体发胀,偶飘上头,三时舒畅


最后由 gzbao9999 编辑于 2010-08-19 9:07,总共编辑了 4 次

页首
 用户资料  
 
3 楼 
 文章标题 : Re: inotify持续精确触发事件问题
帖子发表于 : 2010-08-18 20:22 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 274
支持折腾。
用incrontab吧。只是记得有过不触发的现象。而且,不是所说的那种1秒间隔的固有问题。
incrontab -l


_________________
● 鸣学


页首
 用户资料  
 
4 楼 
 文章标题 : Re: inotify持续精确触发事件问题
帖子发表于 : 2010-08-19 11:22 
头像

注册: 2007-12-25 12:51
帖子: 231
送出感谢: 0 次
接收感谢: 0 次
高并发的话还是用python写个脚本吧,有pyinotify库。


页首
 用户资料  
 
5 楼 
 文章标题 : Re: inotify持续精确触发事件问题
帖子发表于 : 2010-08-28 23:45 
头像

注册: 2008-09-18 13:11
帖子: 2633
送出感谢: 1
接收感谢: 418
其实可以直接利用vim的自动事件处理

将下面的加入到~/.vimrc就可以了

代码:
function! PlWrite()
    :!chmod +x %
    :w
endfunction
autocmd BufWritePost *.pl :call PlWrite()


你在vim中使用:w时,会去自动执行chmod后再保存一次(避免vim提示文件已改变)


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 5 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译