inicie o script de shell com:
#!/bin/bash -l
Isso faz com que o bash comece como um shell de login, o que significa que ele lerá / etc / profile e ~ / .bash_profile.
Eu tenho um script crontab que roda bem no shell interativo. No entanto, ao executar a partir do crontab, ele falha porque ele não executa os scripts em /etc/profile.d/ (por exemplo, /etc/profile.d/java.sh)
Qual é a melhor maneira de corrigir isso?
Defina SHELL no seu crontab:
SHELL=/bin/bash
* * * * * # your_job