我需要在我的旧网站(CakePHP 1.3)中使用cron作业。 我做了以下步骤:
在/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();
}
}
?>
答案 0 :(得分:0)
cakeshell
:cmd
应该具有Cake核心的cake
文件的路径
cmd="/somepath/public_html/lib/Cake/Console/cake"
crontab
:
0 0 * * * /somepath/public_html/app/vendors/cakeshell valute -app /somepath/public_html/app >> var/log/crontab