2

我想在 CodeIgniter 中不使用 wget 来运行 cron 作业。我这样使用它:

*/1 * * * * wget  http://assurance.com/controller/function

它成功运行,但我不想使用 wget。

还有其他方法可以运行此 CodeIgniter 脚本吗?

4

3 回答 3

1

你可以尝试使用这样的东西:

* * * * * /usr/bin/php  /pathToTheApp/controller/function

但当然/usr/bin/php应该是您的 PHP 二进制文件的路径,并且pathToTheApp应该是您的 CI 应用程序的绝对路径。

于 2012-07-14T08:15:12.383 回答
0

如果您在主机上具有本地 shell 访问权限,请将其添加到那里的 crontab 中。

于 2012-07-14T06:10:10.637 回答
0

我最近需要做这件事,但找不到完整的解决方案。所以我会尝试在这里提供一个。

我使用“bash shell”是因为我想将我的控制器的命令行 (CLI) 调用转换为 http(注意:我使用的是 ubuntu/linux 服务器。

主要分为三个部分:

cron 调用

外壳脚本

控制器功能


克朗:

在您的服务器 cli 中键入以下内容以访问 crontab:crontab -e

然后添加您的 cron 调用:* * * * * bash /path/to/script/test.sh

(注意:我在我的站点根目录中创建了一个名为 cron 的文件夹,所以我的路径是:

/var/www/website/cron/test.sh


外壳脚本:

在我们创建的那个 cron 文件夹中,创建一个名为“test.sh”的文件

在文件中放置:

#!/bin/bash
cd /path/to/site
/usr/bin/php index.php controller function

就是这样

cron 设置计时器以调用文件 shell 从 CLI 调用控制器

您现在可以在函数中使用 $this->input->is_cli_request() 来增加安全性。

public function cronTest()
{
    if($this->input->is_cli_request())
    {
        //code goes here;
    }        
}

希望这可以帮助您节省一些时间,这比预期花费了我更长的时间:)

于 2014-06-07T10:31:47.760 回答