Cron 忽略 PHP 命令
Cron ignoring PHP commands
我有一个 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 脚本的 header 中添加了二进制文件的完整路径:
#!/usr/bin/php
<?php
我仔细检查了所有路径(二进制、脚本)
- 我仔细检查了 PHP cli 版本
- 我仔细检查了 PHP cli 是否正常工作(我可以 运行 来自 shell 的脚本)
- 我在 PHP cli .ini 文件中启用了所有 PHP 错误的记录和显示
- 我检查了脚本的权限
- 我已经使脚本可执行
- 我试过 运行宁虚拟脚本(只是回应一些东西,或者写一个文件)
- 我已经重启了 cron
- 我仔细检查了日志文件(适用于 Python 命令,不适用于 PHP 命令)
发生了什么:
绝对没有!无论我在该文件中有什么 PHP 命令,都没有任何反应。日志虽然保持空白,但什么都没有 运行.
在发布这个之前我已经搜索了很长时间,其他人也有类似的问题,但大多数时候它只是一个路径和/或权限问题。我不认为这里是这种情况。
什么都没发生的事实快把我逼疯了。有什么想法吗?
这只是一个语法错误,正如 mrun 在评论中指出的那样:
2>& instead of 2>&1
真的很笨,但是解决了!
我有一个 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 脚本的 header 中添加了二进制文件的完整路径:
#!/usr/bin/php <?php
我仔细检查了所有路径(二进制、脚本)
- 我仔细检查了 PHP cli 版本
- 我仔细检查了 PHP cli 是否正常工作(我可以 运行 来自 shell 的脚本)
- 我在 PHP cli .ini 文件中启用了所有 PHP 错误的记录和显示
- 我检查了脚本的权限
- 我已经使脚本可执行
- 我试过 运行宁虚拟脚本(只是回应一些东西,或者写一个文件)
- 我已经重启了 cron
- 我仔细检查了日志文件(适用于 Python 命令,不适用于 PHP 命令)
发生了什么:
绝对没有!无论我在该文件中有什么 PHP 命令,都没有任何反应。日志虽然保持空白,但什么都没有 运行.
在发布这个之前我已经搜索了很长时间,其他人也有类似的问题,但大多数时候它只是一个路径和/或权限问题。我不认为这里是这种情况。
什么都没发生的事实快把我逼疯了。有什么想法吗?
这只是一个语法错误,正如 mrun 在评论中指出的那样:
2>& instead of 2>&1
真的很笨,但是解决了!