2014-02-15 2 views
0

Мне нужна работа cron на одном из моих старых веб-сайтов (CakePHP 1.3). я сделал следующие шаги:Cronjob in CakePHP 1.3

  1. создали оболочки в /somepath/public_html/app/vendors/shells/valute.php

    class ValuteShell extends Shell { 
        var $uses = array('Valute'); 
        function main() { 
         $this->Valute->cacheGetKonverterData(); 
        } 
    } 
    
  2. создал Баш скрипт и сохранить это в моих поставщиков папку, как 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 
    
  3. изменил разрешения на этот файл 777.

  4. называется 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

возможно дубликат [Крон грузоотправитель CakePHP 2.0] (Http: // StackOverflow .com/a/23636079/761202) (в то время как этот вопрос использует собственный скрипт bash - правильным решением является просто вызвать консоль/cake). – AD7six

ответ

0

cakeshell: cmd должны иметь путь 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 
+0

Благодарим вас за ответ, но, к сожалению, это не работает – user2580714

+0

Вы получаете сообщения об ошибках? – cornelb

+0

Я не заметил ошибку. Я решил проблему по-другому: curl -sfo/dev/null www.somedomain.com/controller/action/secret_code. Это своего рода импровизация, но она работает. – user2580714