我有一个简单的 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