Crontab没有运行

时间:2013-03-03 18:40:39

标签: php cron crontab

我最近遇到过crontab的一些问题。切换服务器后,我意识到我的cronjobs都没有运行。看完PHP信息后,我意识到php是用CGI运行的,所以我意识到我必须将lynx -dump URL_HERE切换到php -q PATH_HERE

在实际的PHP文件中,我像#!/usr/bin/php -q一样盯着它来定义php在我的服务器上的位置。但是,它没有运行。我甚至设置了crontab,以便在运行任何内容后向我发送电子邮件。没有电子邮件我检查了垃圾,垃圾,垃圾邮件,我甚至尝试过切换电子邮件。什么都没有。

以下是我现在所拥有的:* * * * * php -q /home/USER/public_html/file.php

如果我复制&将它粘贴到命令行中,它运行得非常好。如果我通过crontab运行它,它就不会运行。

2 个答案:

答案 0 :(得分:0)

你可以做一些事情来调试它。

1)在您的crontab中,将您的条目更改为:

* * * * * php -q /home/USER/public_html/file.php > /tmp/filecron 2>&1

确保键入以下内容编辑条目:

crontab -e

然后运行:

tail -f /tmp/filecron

在输出运行时调试输出。

2)作为sudo用户或root用户,请关闭cron日志以确保你的cron正确执行:

sudo tail -f /var/log/cron

第一步将为您提供与php文件本身相关的信息(语法错误等),如果这是失败的话。如果没有正确配置crontab本身,第二步将帮助您。

你打算每5分钟运行一次这项工作吗?这就是你所说的那条线。

答案 1 :(得分:0)

您缺少环境变量。尝试像这样的简单测试

将此添加到您的crontab

* * * * *  set > /tmp/vars

等待2到3分钟,返回并删除刚刚创建的crontab条目。

接下来,

在shell命令行中,您通常使用

set > myvars
diff myvars /tmp/vars

这将向您展示环境的不同之处。修改您的cron作业环境。只需添加所需内容即可。