1

我有一个 cron 设置来运行一个 php 文件,但由于某种原因,它在时机成熟时不起作用。我可以在终端中手动调用相同的文件,它工作正常。也没有错误信息。

注意:为不同的文件夹和文件设置了更多作业,它们都可以正常工作。权限也是一样的。

谢谢

克朗

30 2 * * 1,2,3,4,5 php /var/www/html/cronjob/update-db.php

权限

drwxr-xr-x  2 root   root      4096 Nov 20 10:17 cronjob

-rwxr-xr-x 1 root root 5808 Nov 21 17:21 update-db.php
  • conn.php 被许多其他 cronjobs 使用并且工作正常。
  • 当我在终端中调用它时,这段代码运行良好。
  • 除此之外,其他所有 cronjob 都可以正常工作。

代码

require_once "/var/www/html/dbfolder/conn.php";


function write_log($message)
{
    $filename = 'update-sis-assessment-column-log.txt';

    if (file_exists($filename))
    {
        $handle = fopen($filename, 'a');
    }
    else
    {
        $handle = fopen($filename, 'w');
        //chmod($filename, 0644);
    }

    fwrite($handle, $message . "\r\n\r\n");
    fclose($handle);

    exit;
}

if (connectDB() === true)
{
    $query = "SELECT.......";
    $rcset = mysql_query($query);

    $terms = null;

    if (@mysql_num_rows($rcset) > 0)
    {
        while ($records = mysql_fetch_array($rcset))
        {
            if (ctype_digit($records['Term']))
            {
                $terms .= "'" . substr($records['Term'], 0, 4) . "-01', ";
            }
        }

        $terms = substr($terms, 0, -2);
    }

    write_log('DONE : ' . $terms);
}
4

2 回答 2

2

确保 php 可执行文件在您的路径中,或者将 php 的完整路径放在 cron 作业中,例如

30 2 * * 1,2,3,4,5 /usr/bin/php /var/www/html/cronjob/update-db.php 

如果您不确定 php 的位置,您可以运行

which php

获取路径

于 2012-11-23T09:14:26.120 回答
1

还建议将输出重定向到日志文件并使用更短的运行时间间隔进行调试

*/5 * * * * /usr/bin/php /var/www/html/cronjob/update-db.php >> /path_to_log.log

于 2012-11-23T09:24:16.370 回答