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.
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?
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