【发布时间】:2015-11-25 15:49:41
【问题描述】:
我有一个看起来像这样的 crontab(可以按任何顺序 - 脚本可以是任何东西):
*/30 * * * * python /full/path/script.py > /full/path/log.log 2>&1
* * * * * /usr/bin/php -f /full/path/script.php > /full/path/log.log 2>&
Python 命令可以正常工作,但 PHP 不能。
我做了什么:
- 我在 cron 命令中使用二进制文件的完整路径
-
我在 PHP 脚本的标头中添加了二进制文件的完整路径:
#!/usr/bin/php <?php 我已经仔细检查了所有路径(二进制、脚本)
- 我已经仔细检查了 PHP cli 版本
- 我已经仔细检查了 PHP cli 是否正常工作(我可以从 shell 运行脚本)
- 我已启用 PHP cli .ini 文件中所有 PHP 错误的记录和显示
- 我已经检查了脚本的权限
- 我已使脚本可执行
- 我尝试过运行虚拟脚本(只是回显某些内容或写入文件)
- 我已经重启了 cron
- 我已经仔细检查了日志文件(使用 Python 命令,而不是 PHP 命令)
发生了什么:
绝对没有!无论我在该文件中有什么 PHP 命令,都没有任何反应。日志保持为空,但没有运行任何内容。
在发布之前我已经搜索了很长时间,其他人也有类似的问题,但大多数时候这只是路径和/或权限问题。我不认为这里是这种情况。
什么都没有发生的事实让我发疯了。有什么想法吗?
【问题讨论】:
-
我不确定这是否会有所帮助,但一个明显的区别是,在 php 脚本的 crontab 条目中,您有
2>&而不是2>&1。我真的不确定这到底有什么不同,但它就在那里。 -
@mrun 该死的地狱......这只是一个愚蠢的语法错误......我只是在这上面浪费了几个小时。我是如此深入,以至于我什至没有注意到这一点。谢谢你:)
-
是的,我们都去过那里 :) 很高兴我提供了帮助 :)