我需要在我的一箇舊網站(CakePHP 1.3)中使用cron作業。 我做了如下步驟:CakePHP中的Cronjob 1.3
創建殼
/somepath/public_html/app/vendors/shells/valute.php
class ValuteShell extends Shell { var $uses = array('Valute'); function main() { $this->Valute->cacheGetKonverterData(); } }
創建bash腳本,這保存到我的供應商的文件夾中
cakeshell
(/somepath/public_html/app/vendors/cakeshell)
#!/bin/bash TERM=dumb export TERM cmd="cake" while [ $# -ne 0 ]; do if [ "$1" = "-cli" ] || [ "$1" = "-console" ]; then PATH=$PATH:$2 shift else cmd="${cmd} $1" fi shift done $cmd
改變了這個文件的權限爲777
被稱爲CronJob這樣的:
0 0 * * * /somepath/public_html/app/vendors/cakeshell valute -cli /usr/bin -console /somepath/public_html/cake/console -app /somepath/public_html/app
不幸的cronjob不起作用。爲什麼? 當我打電話給:http://www.somedomain.net/valutes/save_valute 一切工作正常。
<?php
class ValutesController extends AppController {
var $name = 'Valutes';
var $uses = array('Valute');
function save_valutes()
{
$this->layout = null; // turn off the layout
$this->Valute->cacheGetKonverterData();
}
}
?>
可能重複://計算器.com/a/23636079/761202)(雖然這個問題使用自定義bash腳本 - 正確的解決方案是隻調用控制檯/蛋糕)。 – AD7six