Por que o PATH está errado com a entrada do cron? [duplicado]

1

Eu tenho uma entrada no cron.d:

31 17 * * * root /home/some_user/.bash_profile; /home/some_user/bin/some_script

O perfil define um caminho específico e eu faço eco do caminho atual no perfil para garantir sua correção. Mas, quando o script é executado, um comando nele falha porque não está no PATH e, quando eu exibo o PATH atual dentro do script - não é o que foi definido no perfil.

Por que o PATH no perfil não sobrevive à execução do script?

    
por flymike 19.04.2015 / 04:06

1 resposta

9

Para definir as variáveis de ambiente desejadas, você precisa originar o arquivo .bash_profile com . /home/some_user/.bash_profile . No seu caso, você está executando o arquivo bash_profile, que basicamente executará esse arquivo e sairá do shell. A próxima vez que some_script for executado, ele será iniciado com novas variáveis de ambiente. Verifique este link - terceirização versus execução

A outra opção é definir a variável de ambiente PATH na parte superior do arquivo crontab. Dessa forma, será visível para o resto dos scripts.

    
por 19.04.2015 / 06:39

Tags