- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经从 EPEL 存储库安装了 incron(在你问之前;是的,我也尝试下载源代码并在本地编译;相同的结果)并试图在我的 CentOS 6.4(最终版)虚拟盒子上设置一个进程,我已在我本地的 Ubunto 12.04 机器上成功制作原型(prototype):
前面的一些信息:
visudo
使用 NOPASSWD 添加我的脚本并调用可执行文件来解决一些权限问题...如果我使用 sudo/path/to/my/script.sh arguments
从命令行调用我的脚本,它就像一个魅力。
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,我会尝试的!
编辑: 文档表明 incron
从系统表运行或根从其主机环境中获取 env,因此只有 incron
由非root 用户应该需要任何类型的 env 或 PATH 摆弄
所以... 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 $@/$#"
没有骰子......尝试了 &&
而不是 ;
= 没有骰子。如果你能想到上述的变体,我可能已经尝试过了……
那么,让我们尝试一些 restorecond -R/usr/sbin/incrond/etc/incron*
操作!呵呵,那里也没有变化。service incrond stop
之后是 service incrond start
然后是 service incrond restart
……不,不,不。
严厉的措施:yum remove incron
和 yum install incron
,chkconfig incrond on
然后为了更好的措施 sudo reboot
!
没有。
我什至没有从 /tmp/IN_ALL_EVENTS echo boo>>/home/myusername/boofile.txt
得到任何东西,因此我什至无法执行 env>>envfile。 txt
来检查 incron
是否在稀疏环境中运行……(见上面的注释)
然而:service incrond status
yields incrond (pid xxxx) is running...
我错过了什么?它必须大而明显,我希望有人能在短时间内让我觉得自己像个白痴!
进一步检查 /var/log/cron
会产生如下结果:Aug 14 15:05:30 hostname incrond[1584]: (root) CMD (sudo/path/to/DropFolder/script/subfolder/script-Beta-1.sh/home/username/DropFolder/testfile.file)
- 是的,我确保我的脚本是可执行的..
所以 incrond 确实在尝试做一些事情,但我在任何地方都没有得到任何输出......即使是一个简单的 echo >/dev/pts/0
也会产生 nada 结果。
最佳答案
好的,这是答案:
尽管我能找到的所有文档都声明它是相反的,但 CentOS 6.4 下的 incrond
在稀疏环境中运行,并且表现得像 cron
。在 Ubuntu 下情况并非如此,incron 从 root 继承其系统表和根表的环境,并且只有用户表在稀疏环境中运行。这当然意味着如果你正在调用一个脚本(我是),脚本需要构建它的环境,并且每件事都必须有一个完整的路径。 一切。 (好吧,除了 shell 内置函数 :p)
许多 Google 和 Bing 以及 Stack Overflow 和 Server Fault 搜索都告诉我 cron
以这种方式运行,但它们似乎也都表明 incron
按照描述运行在文档中,它在 Ubuntu 下执行...
最重要的是,它现在起作用了,耶!
(这没有解决我为 incron
应用 SELinux 安全策略的问题,但稍后我会担心,在另一篇文章中...)
关于bash - incrond在CentOS 6.4下运行但不执行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18238962/
请[1]考虑此命令:sudo incrontab ~/incron-config,其中~/incron-config包含: /home/zetah/doc IN_CREATE,IN_MOVED_TO
我想使用 incrond 监视我的/etc 文件夹 (ubuntu 12.04 lts) 的更改,并且我想使用以下命令通过电子邮件发送结果: /etc IN_ATTRIB,IN_CREATE,IN_D
我正在开发一个最终将驻留在 CentOS(最新)虚拟机上的进程,我正在 Ubuntu 12.04 LTS 中开发... 因此,我将 incron 设置为使用 IN_CLOSE_WRITE 监控我的放置
我在使用 incrond IN_CREATE 选项时遇到问题。我能够成功监控在本地创建的特定文件夹中创建的目录。但是 incrond 无法监控 NFS 挂载的目录。 我添加了一个 cifs NFS m
这是我目前拥有的: /js/main.js IN_MODIFY yui-compressor -o /js/main.min.js /js/main.js 有没有办法对该文件夹中的所有 js 文件和子
在/etc/incron.allow 中我添加了两者: root USER_1 然后我编辑了 incrontab,使其看起来像这样: /var/www/laravel/public/js/main.j
配置 我在 CentOS 7.6 上的 incrond 0.5.12 在 /etc/incron.d/example 中配置如下: /var/tmp/dir IN_CREATE sh/root/inc
我是一名优秀的程序员,十分优秀!