Crontab没有运行

时间:2012-12-15 17:33:59

标签: php mysql database cron

我有一个PHP文件,如果他们的能量低于他们的max_energy,那么会为用户提供1点能量:

<?php
if ($energy < $max_energy) {
    $sql = "UPDATE users SET energy=(energy + 1) WHERE id='".$id."'";
    $res = mysql_query($sql);
}
?>

这是我的服务器上运行cronjob的命令行:

/home/sites/psychowars.com/public_html/psychowars/cronjobs/energy.php  

好吧,当我手动转到 psychowars.com/psychowars/cronjobs/energy.php 链接时,它会给我一个能量,因为我的能量低于$max_energy,但是实际的cronjob应该每2分钟为用户提供一次能量,但它没有做任何事情。他们有什么理由吗?

2 个答案:

答案 0 :(得分:2)

cronjob只能执行可执行文件。因此,您必须使用php可执行文件运行脚本。这样的东西可能在您的crontab中起作用:

/usr/bin/php -q /home/sites/psychowars.com/public_html/psychowars/cronjobs/energy.php

答案 1 :(得分:1)

在我的Cronjobs随机停止运行之前,我遇到了这个问题;

只需运行以下命令:

/etc/init.d/cron restart

当我运行此命令时,我的cronjobs再次开始运行

你应该运行你的cron /etc/crontab

和我的cronjobs的一个示例行(每天每分钟运行)

* * * * * root /usr/bin/php /var/www/cron.php *代表时间

root - 代表用户

/usr/bin/php是我从

运行PHP的目录

/var/www/cron.php - 将在PHP-CLI中执行的php文件

另外,确保安装了php5-cli以确保PHP可以从PHP命令行运行。