Falha no cronjob com / usr / bin / env

1

Eu tenho um script que funciona perfeitamente se eu o executar manualmente a partir da linha de comando. No entanto, quando executado pelo cron, a tarefa falha com o seguinte erro:

/usr/bin/env: escript: No such file or directory

A primeira linha do script é:

#!/usr/bin/env escript

A única coisa que posso imaginar é que o escript não está sendo encontrado, e isso ocorre porque ele não está instalado em / usr / bin, mas em um subdiretório do diretório pessoal do usuário.

Meu entendimento - talvez mal-entendido - do cron é que o cron executa cada trabalho no crontab de um usuário sob o UID / GID do usuário. Também não deve herdar a variável PATH do usuário? Tudo deve ser especificado como caminhos absolutos?

    
por Dr. Watson 08.09.2010 / 15:25

2 respostas

1

O Cron é executado sob o UID do usuário, mas com um PATH mínimo. Seu script precisa usar um caminho completo para o interpretador (escript) ou você precisa definir o PATH no crontab.

    
por 08.09.2010 / 15:57
0

o cron não herda o PATH da configuração interativa do usuário. PATH está definido para "/ usr / bin: / bin"

Ypu pode definir variáveis de ambiente na linha crontab

Veja man crontab para os detalhes, por exemplo man crontab

    
por 08.09.2010 / 16:00