Cronjob 执行 php 脚本时出现问题

Cronjob 执行 php 脚本时出现问题

我有一个每小时执行一次的 cronjob 脚本curl,其中包含 php 脚本。php 脚本未执行。crontab -e我有:

1 * * * * /var/www/path/to/script.sh

执行grep cron /var/log/syslog输出:

Mar 23 21:45:01 Emile CRON[5339]: (root) CMD (/var/www/path/to/anotherscript.sh)
Mar 23 22:01:01 Emile CRON[5386]: (root) CMD (/var/www/path/to/anotherscript.sh)
Mar 23 22:01:01 Emile CRON[5387]: (root) CMD (/var/www/path/to/script.sh)
Mar 23 22:14:01 Emile CRON[5425]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Mar 23 22:15:01 Emile CRON[5429]: (root) CMD (/var/www/path/to/anotherscript.sh)

curl我已经验证了输入的 URLscript.sh是正确的,输入的路径也是正确的。我还验证了 php 脚本在手动执行时可以正常工作。还有什么?有什么想法吗?还有其他诊断方法吗?我的系统日志中crontab -e有什么内容?cd / && run-parts

先谢谢您的帮助!

答案1

通常情况下会发生一个$PATH问题。它是curl使用其完整路径script.sh还是只是curl

您还可以将脚本的第一行(如果您使用 bash)从 更改为#!/bin/bash#/bin/bash -x这将从 bash 生成调试输出)。

无论如何,正如@derfK 在他的评论中所说,检查用户电子邮件是否有错误(脚本调试也将发送到用户电子邮件)。您可以更改 cron 用于发送MAILTO=<email>规则行之前的消息的电子邮件。

相关内容