Verificando se as tarefas foram executadas

4

Não sei como explicar isso. Uma vez que alguém começa a ter dúzias de servidores, cada um executando algum tipo de job periódico (a maioria do cron), há um problema de garantir (ou o mais seguro possível) que essas tarefas são realmente executadas. Quer dizer, eu recebo um email se um trabalho falhar, e nenhum email é bem-sucedido, mas também nenhum email se não for executado por qualquer motivo. Claro, eu poderia mudá-los e fazer com que eles enviassem um e-mail "executado com sucesso", apenas para serem inundados por e-mails que, na maioria das vezes, não quero ver.

Basicamente, quero ser notificado apenas se:

  • uma tarefa foi executada e falhou
  • uma tarefa não foi executada no horário esperado.

Existe uma maneira de fazer isso?

    
por persson 16.11.2012 / 10:47

2 respostas

4

Eu suponho que você esteja executando o sistema UNIX / LINUX se você estiver usando o cron, então a maneira mais simples de monitorar "uma tarefa não foi executada no tempo esperado" é logging remoto para um servidor de log (?) isso no seu syslog.conf:

cron.!=info;   @logserver.yourdomain.tld

Em seguida, você pode procurar esses logs por erros ou apenas adicionar alguns scripts de análise de log para fazer esse trabalho.

Mas, de qualquer forma, sempre haverá possibilidade de que o registro seja interrompido e você simplesmente não receba mensagens de erro.

    
por 16.11.2012 / 11:22
4

Eu não acho que haja algo já feito sobre isso. Você pode definir todas as tarefas para registrar em um único arquivo seu status: carimbo de data / hora, servidor, tarefa, status, outras informações.

E você analisa esse arquivo periodicamente e envia e-mail quando o status falha ou aviso ou as tarefas têm carimbos de data e hora antigos. Para ter certeza de que esse script foi bem-sucedido, ele enviará um e-mail, mesmo se tudo estiver correto.

Desta forma, você não será inundado por e-mails, será apenas um e-mail de vez em quando.

    
por 16.11.2012 / 11:31

Tags