我想在不使用代碼點火器中的wget的情況下運行cron作業。 像這樣使用如何在不使用wget的情況下在codeigniter中運行cron作業?
*/1 * * * * wget http://assurance.com/controller/function
它可以成功運行。但我不想使用wget。
是否有任何其他方式來運行此鱈魚點火器腳本?
我想在不使用代碼點火器中的wget的情況下運行cron作業。 像這樣使用如何在不使用wget的情況下在codeigniter中運行cron作業?
*/1 * * * * wget http://assurance.com/controller/function
它可以成功運行。但我不想使用wget。
是否有任何其他方式來運行此鱈魚點火器腳本?
你可以嘗試使用這樣的:
* * * * * /usr/bin/php /pathToTheApp/controller/function
但當然/usr/bin/php
應該是你的路徑PHP二進制文件和pathToTheApp
應該是絕對路徑的CI的應用程序。
我最近需要做這件事,並找不到完整的解決方案。所以我會盡力在這裏提供一個。
我用「bash shell的」,因爲我想做一個命令行(CLI)調用我的控制器爲HTTP(注:我使用的是Ubuntu的/ Linux服務器
主要有三種部分:
這個cron調用
shell腳本
控制器功能
的Cron:
在您的服務器CLI類型此訪問的crontab:crontab -e命令
然後添加您的cron電話:* * * * * bash /path/to/script/test.sh
(注:我在所謂的cron網站根目錄創建一個文件夾,所以我的路徑將是:
/var/www/website/cron/test.sh
shell腳本:
在我們做了,創建一個名爲 「test.sh」
在文件放文件夾的cron:
#!/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;
}
}
希望這有助於節省您的時間,這花了我這樣的時間比預期:)
'*/1'意味着每分鐘,這可以用''才得以實現。 – hjpotter92 2012-07-14 06:13:06