如何防止服务关闭通过 bash 重复发送电子邮件警报

如何防止服务关闭通过 bash 重复发送电子邮件警报

我有一个简单的 bash 脚本,计划每 10 分钟运行一次,它检查任何服务的 PID,如果没有找到,它会发送电子邮件警报:

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

问题是,如果所需的服务因某种原因永久关闭,它会继续每 10 分钟发送一次电子邮件。我如何设置检查,以便如果服务关闭并且发送了一次电子邮件,则在服务再次启动之前不应发送任何电子邮件。然后,如果服务随后再次关闭,则应发送一封新电子邮件。

答案1

尝试这样的事情:

#!/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

相关内容