Dificuldade com o crontab [RESOLVIDO]

1. Dificuldade com o crontab [RESOLVIDO]

Fernando Roberto Corrêa
cordobel

(usa Debian)

Enviado em 22/07/2009 - 17:56h

Boa tarde pessoal. Tenho uma dificuldade com o crontab, em um servidor web CentOS
Preciso agendar a execução de um script de php e este recebe parâmetros.
Por exemplo:
php /caminho/script.php -p processaalgo (onde -p processaalgo está configurado no código/lógica do script).
Executar este comando manualmente no shell é tranquilo.
Já no crontab, ele ignora os parâmetros que são passados para o script de php.
O que pode ser feito para contornar esta situação?
Grato pela atenção.


  


2. Re: Dificuldade com o crontab [RESOLVIDO]

Thiago Avelino
avelino0

(usa CentOS)

Enviado em 14/08/2009 - 09:53h

# echo crontab -e >> * * * * * php /caminho/script.php -p processaalgo



Isso vai fazer ele executar de 1 em 1 minuto.


3. Dificuldade com o crontab

Fernando Roberto Corrêa
cordobel

(usa Debian)

Enviado em 14/08/2009 - 10:18h

Muito obrigado thiagoavelinoste por sua resposta.
Mas a dificuldade que encontro com a cron é em passar o parâmetro -p processaalgo.
Na manualmente na no shell funciona, mas quando a cron chama o comando php /caminho/script.php -p processaalgo a cron ignora o parâmetro que é passado ao script e executa apanas o comando php /caminho/script.php.
Vlw.


4. Re: Dificuldade com o crontab [RESOLVIDO]

Daniel Fernandes
volcom

(usa Debian)

Enviado em 14/08/2009 - 10:27h

Pelo que percebi esse parâmetro é fixo, já que sera informado no cron, porque não cria uma variável ou algo do gênero dentro do seu script para não ter que passar nada externo.

Deve facilitar...


5. Re: Dificuldade com o crontab [RESOLVIDO]

Fabio Maran
maran

(usa Debian)

Enviado em 14/08/2009 - 10:40h

concordo com o amig acima
fça um script informando esse comando, pois dentro do contrab será complicado, e tambem fique de olho se o seu scrip não manda nenhum sinal de alerta informando se iniciou algo, ou qualquer saida a video, pois este recurso nao funciona no cron
qualquer script que manda uma mensagem de aviso, não funcionará, os avisos podem ser enviados via e-mail, porem nada de saida de video!!!!


6. Re: Dificuldade com o crontab [RESOLVIDO]

Fernando Roberto Corrêa
cordobel

(usa Debian)

Enviado em 14/08/2009 - 10:59h

Muito obrigado volcom e maran por suas respostas.
Concordo com vocês. Facilita muito quando o script faz o seu trabalho sem precisar receber algum parâmetro externo.
E de acordo com a resposta de maran o problema pode ser com a resposta que o script devolve logo que inicia o seu processamento.("fique de olho se o seu scrip não manda nenhum sinal de alerta informando se iniciou algo, ou qualquer saida a video, pois este recurso nao funciona no cron")
Os demais scripts que tenho no cron disparam uma saída de vídeo somente no fim do processamento, e esta saída eu recebo via e-mail.
Solicitarei para a minha equipe a modificação do script para que este não efetue saída de vídeo no início do processamento a apenas no fim.
Se isso não der certo o script será alterado para realizar o processamento sem precisar do parâmetro externo.
A resposta a este problema agora tem duas possibilidades, saída de vídeo ou no cron não tem como passar parâmetro para os scripts, o que eu acho pouco provável.
Muito obrigado pessoal. Postarei o resultado dos testes assim que possível.


7. Re: Dificuldade com o crontab [RESOLVIDO]

Genesco Sousa
gesousa

(usa Ubuntu)

Enviado em 14/08/2009 - 11:01h

Maran, sua resposta está quase certa...

o problema está correto como o parâmetro precisa ser impresso no terminal, como o comandos echo e printf, ele não funcionará no cron que funciona em segundo plano sem estar associado a nenhum terminal ...

Mas ao contrario do que foi falado o problema é fácil de ser solucionado, basta indicar qu a saida do comando sai em algum terminal.

ex:

php /caminho/script.php -p processaalgo > /dev/tty1

a mesma coisa funciona para qualquer comando que precise estar associado algum terminal ....


8. Re: Dificuldade com o crontab [RESOLVIDO]

Fernando Roberto Corrêa
cordobel

(usa Debian)

Enviado em 19/11/2009 - 16:52h

Boa tarde pessoal.
A equipe de desenvolvimento aqui da empresa, remexeu tanto neste script de php que nem é mais preciso usar a crontab.
De qualquer forma a dica do colega gesousa "php /caminho/script.php -p processaalgo > /dev/tty1" foi que que deu melhor resultado. Na realidade usamos /dev/null no fim do comando.
Abraço galera.
Desculpe a demora e Muito obrigado pela força.