预先提供的一些信息:
> SELinux设置为PERMISSIVE
>我已经使用visudo向NOPASSWD添加了我的脚本并调用了可执行文件以解决一些权限问题…
如果我使用sudo /path/to/my/script.sh参数从命令行调用我的脚本,它就像一个魅力.
sudo service incrond status验证incrond正在运行. root和myusername被添加到/etc/incron.allow,/etc/incron.deny为空.
我对root的incrotab是:
/path/to/dropfolder/ IN_CLOSE_WRITE sudo /path/to/my/script.sh $@/$#
/ path / to / dropfolder /中的事件导致完全没有发生.没有生成日志,没有消息,文件夹中的文件也没有动作.
所以我研究过:有人建议cron在最小的环境中运行,并且要执行复杂的命令/脚本,你可能必须执行.bashrc和/或在cron命令的开头导出你的PATH.
注意:我找不到支持incron也在最小环境中运行的文档,但是由于我的google-fu(和bing-fu!)未能导致任何与incron直接相关的有用结果,我认为WTH,我会尝试!
编辑:文档表明从系统表或root运行的incron从其主机环境中获取env,因此只有非root用户执行的incron应该需要任何类型的env或PATH fiddling
所以… incrontab for root:
/path/to/dropfolder IN_CLOSE_WRITE . /home/myusername/.bashrc; export PATH=$PATH:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin; sudo /path/to/my/script.sh $@/$#"
没有骰子……试过&&代替 ; =没有骰子.如果你能想到上面的变化,我可能已经尝试过了……
所以,让我们尝试一点redecond -R /usr/sbin / incrond / etc / incron *动作!
嗯,也没有变化.
service incrond stop然后是service incrond start然后service incrond restart … nope,nope和nope.
严厉的措施:yum删除incron和yum install incron,chkconfig incrond on然后好的措施sudo重启!
没有.
我甚至没有得到/ tmp / IN_ALL_EVENTS echo boo>> /home/myusername/boofile.txt中的任何内容,因此我甚至无法使用env>> envfile.txt来检查incron是否在稀疏环境中运行……(见上文)
然而:服务incrond状态yield incrond(pid xxxx)正在运行…
我错过了什么?它必须是大而明显的,我希望有人可以让我觉得自己像一个短暂的白痴!
进一步检查/ var / log / cron产生如下结果:8月14日15:05:30 hostname incrond [1584] 原文链接:https://www.f2er.com/bash/384860.html