a tarefa cron não executará o script

0

Eu tenho o script abaixo

#!/bin/sh

tail -fn1 /app/agile/agile931/agileDomain/servers/01mustgagl01.natusmed.natus.com-AgileServer/logs/agileDomain.log| \
while read line ; do
        echo "$line" | grep "OutOfMemory"
        if [ $? = 0 ]
        then
                ##--Mail the Report--
(
  echo "To: [email protected]"
  echo "From: AGILE ADMIN"
  echo "Content-Type: text/html; "
  echo "Subject: OOM Alert"
  echo
  ) | /usr/lib/sendmail -t

    fi
done

$ ./OOMERROR.sh

exit

Ele roda bem quando executado manualmente, mas não é executado com o trabalho cron abaixo.

0 3 * * * agile /path/to/script/OOMERROR.sh

o syslog mostra uma entrada e nenhum erro mas eu não receberei o email.

    
por Dutta 23.06.2015 / 02:23

2 respostas

1

Você não coloca o usuário que está executando o trabalho em uma linha de trabalho cron . Você pode ver o formato correto executando man 5 crontab em um terminal.

Cada usuário tem seu próprio crontab separado ( cron job table). Para editar o crontab de agile , abra um terminal e execute:

su agile
crontab -e

Isso abrirá o crontab de agile em um editor de texto. Insira a linha de trabalho cron que você tem acima sem o nome de usuário:

0 3 * * * /path/to/script/OOMERROR.sh

Agora salve o arquivo e saia.

    
por Olathe 23.06.2015 / 13:10
0

Primeiramente, você está perdendo um # no sha-bang.

Em segundo lugar, eu recomendaria colocar o caminho completo do seu executável agile e, em terceiro lugar, eu reformaria o arquivo, já que parece uma bagunça.

Eu também sugiro verificar outros arquivos de log, pois há muitas razões diferentes pelas quais o email não foi enviado e tente adicionar suporte de registro a esse script se algo falhar.

    
por Sandri_Nenes 23.06.2015 / 02:44