如何在不使用wget的情况下在codeigniter中运行cron作业?

时间:2012-07-14 05:46:49

标签: php cron

我想在不使用CodeIgniter中的wget的情况下运行cron作业。 我这样使用它:

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

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

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

3 个答案:

答案 0 :(得分:1)

您可以尝试使用以下内容:

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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

主要有三个部分:

cron call

shell脚本

控制器功能


的Cron:

在你的服务器cli中输入

来访问crontab:crontab -e

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

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

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


Shell脚本:

在我们制作的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;
    }        
}

希望这有助于为您节省一些时间,这比我预期的要长:)