Existem dois problemas possíveis aqui. Primeiro de tudo, o cron executa tarefas em um shell especial que não lê seu $ PATH pessoal. Se java
não estiver em /usr/bin
ou /bin
, não estará disponível para o cron. De man 5 crontab
:
Portanto, use o caminho completo para java
. A próxima questão é que seu script bash chama java em um arquivo com um caminho relativo. Ele pressupõe que o script será iniciado no mesmo diretório que o arquivo java. Mais uma vez, este não é o caso. Portanto, sempre use caminhos absolutos para seus scripts, se quiser que eles sejam executados conforme o esperado pelo cron:
/path/to/java /path/to/Cron_Read_Send_CapacityData_To_Graphite >> /path/to/Cron_Read_Send_CapacityData_To_Graphite.log
Como alternativa, você pode definir o $PATH
no próprio crontab:
PATH=$PATH:/opt/bin
*/15 * * * * /home/marshell/graphite_cronjobs/Run_Cron_Read_Send_CapacityData_To_Graphite.sh