Symlink no crontab, script não encontrado [duplicado]

2

Estou executando o teste Debian e não consigo um cron simples para executar um script PHP com link simbólico.

Eu tenho um script php em um subdiretório na minha pasta pessoal /home/foobar/dir/script.php (que começa com o seguinte shebang #!/usr/bin/env php ).

Eu criei um link simbólico que aponta para ele:

sudo ln -s ~/dir/script.php /usr/local/bin/whatever
ls -la /usr/local/bin
lrwxrwxrwx 1 root staff 24 Feb 27 17:46 whatever -> /home/foobar/dir/script.php*

E adicionei a seguinte regra ao meu crontab (execute whatever a cada minuto):

crontab -e
* * * * * whatever

Mas não funciona , recebo o seguinte erro:

cat /var/mail/foobar
...
/bin/sh: 1: whatever: not found

Enquanto apontando para o script sem usar o symlink funciona :

crontab -e
* * * * * /home/foobar/dir/script.php

Alguma ideia?

    
por Niemand 02.03.2015 / 02:44

2 respostas

1

Diretórios como /usr/local/bin e /usr/local/sbin não são padrão no cronjobs $PATH . Mas você pode redefinir $PATH no crontab, basta colocar algo assim antes de quaisquer cronjobs definidos

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

    
por 02.03.2015 / 07:57
0

A variável de ambiente $ PATH no cron é limitada e não incluirá nem / usr / local / bin nem / home / foobar / dir. A resposta correta é, como você descobriu, qualificar totalmente o caminho para o script em seu crontab; isso leva a menos surpresas.

    
por 02.03.2015 / 05:44