bash – 在CentOS 6.4下运行但不执行命令
我已经从EPEL存储库安装了incron(在你问之前;是的,我也尝试下载源代码并在本地编译;结果相同)并且我试图在我的CentOS 6.4(最终)虚拟盒上设置一个我成功原型的过程在我当地的Ubunto 12.04机器上:
预先提供的一些信息: > SELinux设置为PERMISSIVE 如果我使用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 *动作! 严厉的措施: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] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |