Crontab não está executando trabalhos Ubuntu 14.04

1

Estou tentando executar o script bash como um cron job a cada 15 minutos.

O script bash simples chama um programa em Java. Fiz uma entrada no crontab para executar o arquivo a cada 15 minutos e salvei, mas ele não faria nada?

crontab -e

*/15 * * * * /home/marshell/graphite_cronjobs/Run_Cron_Read_Send_CapacityData_To_Graphite.sh

Run_Cron_Read_Send_CapacityData_To_Graphite.sh

java Cron_Read_Send_CapacityData_To_Graphite  >> Cron_Read_Send_CapacityData_To_Graphite.log
    
por Marshell 17.09.2014 / 16:06

1 resposta

0

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 :

% bl0ck_qu0te%

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
    
por terdon 17.09.2014 / 18:08