【问题标题】:Cron ignoring PHP commandsCron 忽略 PHP 命令
【发布时间】: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&gt;&amp; 而不是 2&gt;&amp;1。我真的不确定这到底有什么不同,但它就在那里。
  • @mrun 该死的地狱......这只是一个愚蠢的语法错误......我只是在这上面浪费了几个小时。我是如此深入,以至于我什至没有注意到这一点。谢谢你:)
  • 是的,我们都去过那里 :) 很高兴我提供了帮助 :)

标签: php cron debian


【解决方案1】:

这只是一个语法错误,正如 mrun 在评论中指出的那样:

2>& instead of 2>&1

真的很蠢,但解决了!

【讨论】:

    猜你喜欢
    • 2010-12-17
    • 2023-03-13
    • 2020-04-03
    • 2020-03-29
    • 1970-01-01
    • 1970-01-01
    • 2012-04-04
    • 2013-07-11
    • 2018-07-11
    相关资源
    最近更新 更多