Como posso executar um comando cron com variáveis ambientais existentes?
Se eu estiver em um prompt de shell, posso digitar echo $ORACLE_HOMEe obter um caminho. Esta é uma das minhas variáveis ambientais que é definida na minha ~/.profile. No entanto, parece que ~/.profilenão é carregado de scripts cron e, portanto, meus scripts falham porque a $ORACLE_HOMEvariável não está definida.
Em esta questão o autor menciona a criação de um ~/.cronfileperfil que estabelece variáveis para cron, e então ele faz uma solução alternativa para carregar todos os seus comandos cron em scripts que ele mantém em seu ~/Crondiretório. Um arquivo ~/.cronfileparece uma boa idéia, mas o restante da resposta parece um pouco complicado e eu esperava que alguém pudesse me dizer uma maneira mais fácil de obter o mesmo resultado.
Suponho que, no início dos meus scripts, eu possa adicionar algo parecido, source ~/.profilemas que parece ser redundante.
Então, como posso fazer meus scripts cron carregar as variáveis do meu perfil de shell interativo?
su -lpara configurar um ambiente de login normal, incluindo o $ PATH para root ou outro usuário específico.
source ~/.profilea um programa é redundante? Os programas herdam seu ambiente do programa de chamada. Se esse programa de chamada não for o seu shell, como o programa decendente obterá o ambiente que você deseja?