Como posso testar um trabalho de cron com o PHP?
Pergunta
Esta é a primeira vez que usei um cron.
Estou usando -o para analisar dados externos que são automaticamente ftp'd para um subdiretório em nosso site.
Eu criei um controlador e modelo que lida com os dados. Posso acessar o URL bem no meu navegador e ele funciona (no entanto, estarei restringindo isso em breve).
Meu problema é: como posso testar se está funcionando?
Eu adicionei isso ao meu controlador para um log rápido e sujo
$file = 'test.txt';
$contents = '';
if (file_exists($file)) {
$contents = file_get_contents($file);
}
$contents .= date('m-d-Y') . ' --- ' . PHP_SAPI . "\n\n";
file_put_contents($file, $contents);
Mas até agora só receberam pedidos de mim mesmo do navegador, apesar de ter meu Cron correndo sempre.
03-18-2010 --- cgi-fcgi
03-18-2010 --- cgi-fcgi
Eu o configurei usando cpanel com o comando
index.php properties/update/
A segunda parte é o que eu uso para acessar a página no meu navegador.
Então, como posso testar isso está funcionando corretamente, e eu enchei alguma coisa?
Nota: Estou usando o Kohana 3.
Muito Obrigado
Solução
Você não está usando o comando correto para chamar Kohana.
Verifique se você está usando o caminho completo para index.php para que você possa eliminar qualquer erro de caminho. Aqui está o interruptores disponíveis para uso em kohana:
- --Uri: Auto -explicativo
- --método: Método de solicitação http (post, get, etc ...) (substitui o método kohana :: $)
- --pegue: Dados Get Formatted
- --publicar: Dados de postagem formatados
Você deveria estar usando algo assim:
php /path/to/kohana/directory/index.php --uri=properties/update/
Não me lembro se você precisa de cotações duplas em torno do valor, não se esqueça de tentar isso se não funcionar.
Outras dicas
Você provavelmente não está executando o Cron com permissões raiz nesse arquivo.
colocar mailto="youremail@yourdomain.tld"
No início do arquivo CRON, por e -mail seus erros.
Se você não tiver acesso root ao arquivo cron (ou seja, SSH), não sei se você pode fazer isso no cPanel.