Como configurar o cron para chamar o script php - bash: * / 5: Nenhum arquivo ou diretório para configurar o cron job

0

estamos tentando configurar o cron para o site magento rodando no servidor ubuntu

estamos tentando seguir o comando:

*/5 * * * * php -f /var/www/html/sitename/cron.php

mas estamos recebendo o erro abaixo:

-bash: */5: No such file or directory

Atualização 1

Atualização2-Erro

PHPWarning:require(app/bootstrap.php):failedtoopenstream:Nosuchfileordirectoryin/var/www/html/sitename/cron.phponline30PHPFatalerror:require():Failedopeningrequired'app/bootstrap.php'(include_path='.:/usr/share/php:/usr/share/pear')in/var/www/html/sitename/cron.phponline30

cron.php

<?php//Changecurrentdirectorytothedirectoryofcurrentscriptchdir(dirname(__FILE__));require'app/bootstrap.php';require'app/Mage.php';if(!Mage::isInstalled()){echo"Application is not installed yet, please complete install wizard first.";
    exit;
}

// Only for urls
// Don't remove this
$_SERVER['SCRIPT_NAME'] = str_replace(basename(__FILE__), 'index.php', $_SERVER['SCRIPT_NAME']);
$_SERVER['SCRIPT_FILENAME'] = str_replace(basename(__FILE__), 'index.php', $_SERVER['SCRIPT_FILENAME']);

Mage::app('admin')->setUseSessionInUrl(false);

umask(0);

$disabledFuncs = explode(',', ini_get('disable_functions'));
$isShellDisabled = is_array($disabledFuncs) ? in_array('shell_exec', $disabledFuncs) : true;
$isShellDisabled = (stripos(PHP_OS, 'win') === false) ? $isShellDisabled : true;
$isShellDisabled = true;

try {
    if (stripos(PHP_OS, 'win') === false) {
        $options = getopt('m::');
        if (isset($options['m'])) {
            if ($options['m'] == 'always') {
                $cronMode = 'always';
            } elseif ($options['m'] == 'default') {
                $cronMode = 'default';
            } else {
                Mage::throwException('Unrecognized cron mode was defined');
            }
        } else if (!$isShellDisabled) {
            $fileName = basename(__FILE__);
            $baseDir = dirname(__FILE__);
            shell_exec("/bin/sh $baseDir/cron.sh $fileName -mdefault 1 > /dev/null 2>&1 &");
            shell_exec("/bin/sh $baseDir/cron.sh $fileName -malways 1 > /dev/null 2>&1 &");
            exit;
        }
    }

    Mage::getConfig()->init()->loadEventObservers('crontab');
    Mage::app()->addEventArea('crontab');
    if ($isShellDisabled) {
        Mage::dispatchEvent('always');
        Mage::dispatchEvent('default');
    } else {
        Mage::dispatchEvent($cronMode);
    }
} catch (Exception $e) {
    Mage::printException($e);
    exit(1);
}
    
por spylh9999ggr 12.05.2016 / 14:01

2 respostas

5

Sobre o cron

Citando wikipedia aqui

The software utility Cron is a time-based job scheduler in Unix-like computer operating systems. People who set up and maintain software environments use cron to schedule jobs (commands or shell scripts) to run periodically at fixed times, dates, or intervals. It typically automates system maintenance or administration..

Por favor, verifique este link para mais informações sobre o cron

Ver o crontab

Para imprimir / visualizar o crontab do usuário atual

crontab -l

Para ver o crontab de outro usuário você precisa de permissões sudo

sudo crontab -l -u nameOfOtherUser

Editar crontab

Para editar seus usuários, crontab

crontab -e

ou para outro usuário via

sudo crontab -e -u nameOfOtherUser

Como seu cron pode ser

A possível linha cron usando o caminho completo para o php

*/5 * * * * /usr/bin/php  -q /var/www/html/sitename/cron.php

ou para fins de depuração, como mencionado por @Brian

*/5 * * * * /usr/bin/php  -q /var/www/html/sitename/cron.php > /var/www/html/sitename/cron-temp.log 2>&1

Isso grava um arquivo de log chamado cron-temp.log in /var/www/html/sitename/

Em relação aos parâmetros

-q = modo silencioso

Seu trabalho

  • Edite seu cron e adicione a nova linha que define com que frequência o script deve ser chamado
  • Aguarde até que o intervalo seja acionado e verifique o arquivo de log se você estiver usando essa opção
por dufte 12.05.2016 / 14:06
1

Você digita isso em um terminal? Esta é uma definição do cronjob, não um comando. Esta linha tem que ir em / etc / crontab O usuário também está faltando ...

Acho que você copiou isso de outro site sem realmente entender como ele funciona. Se sim, leia alguma documentação sobre o cron ...

    
por Camilio 12.05.2016 / 14:10

Tags