crontab - / bin / sh: wget: comando não encontrado

2

Desejo configurar um crontab no meu Macbook Pro executando o Lion. Eu corro o usual crontab -e e forneço um trabalho rápido para ver se tudo está funcionando ok ---

*/10 * * * * wget -O - -q -t 1 http://site.local/cron.php

10 minutos depois, vejo alguns "e-mails" do sistema informando ---

/bin/sh: wget: command not found

Eu tenho wget instalado como eu posso executar o programa a partir da linha de comando

Como corrijo esse erro? Meu crontab ou .bash_profile exigem uma shebang?

    
por atb 06.08.2012 / 22:48

2 respostas

9

Provavelmente tem algo a ver com o fato de seu ambiente ser diferente quando executado como uma tarefa do cron (ou seja, a variável de ambiente PATH é diferente da que você está usando em um terminal bash).

No seu terminal bash, use which para descobrir qual wget está sendo usado:

laptop [ ~ ]: which wget
/opt/local/bin/wget

Em seguida, use o caminho completo no trabalho cron:

*/10 * * * * /opt/local/bin/wget -O - -q -t 1 http://site.local/cron.php

Para tarefas agendadas, eu geralmente executo um script bash em vez de especificar o comando diretamente no crontab. É um pouco mais fácil de depurar e mantém o crontab um pouco mais limpo.

    
por 06.08.2012 / 23:05
2

Para descobrir onde um determinado comando está localizado, tente:

which wget

ou

which <certain-command>

A saída deve fornecer o caminho do executável. Por exemplo:

linux-dgr7:~ # sudo which wget
/usr/bin/wget 

altere a entrada assim:

*/10 * * * * /usr/bin/wget -O - -q -t 1 http://site.local/cron.php

Se o wget não aparecer depois de fazer o que ... você deve adicionar o local à variável PATH.

PATH=$PATH:/where/ever/path/is

ou

PATH=$PATH:/opt/wget
    
por 06.08.2012 / 23:11