Como impedir que o serviço seja enviado repetidamente por e-mail enviado alertas via bash

0

Eu tenho um script bash simples agendado para ser executado a cada 10 minutos, que verifica o PID de qualquer serviço e, se não for encontrado, ele envia um alerta por e-mail:

#!/bin/bash
if pgrep "mysql" > /dev/null
then
    echo "MYSQL Running"
else
    echo "ALERT Stopped"
    # Sends Email Alert blah blah
fi

A questão é que, se, de alguma forma, o serviço necessário estiver inativo permanentemente, ele continuará enviando e-mails a cada 10 minutos. Como posso configurar uma verificação para que, se o serviço estiver inativo e um e-mail enviado uma vez, nenhum e-mail seja enviado até que o serviço seja ativado novamente. Então, se o serviço for desligado novamente, um novo email deverá ser enviado.

    
por Syed Jahanzaib 24.07.2015 / 11:42

1 resposta

2

Tente algo assim:

#!/bin/bash
if pgrep "mysql" > /dev/null
then
    echo "MYSQL Running"
    rm -f /var/run/.mysql_mail_sent
else
    echo "ALERT Stopped"
    if [ ! -f /var/run/.mysql_mail_sent ]; then
        // send your mail here
        date > /var/run/.mysql_mail_sent
    fi
fi
    
por 24.07.2015 / 11:49