服务停止时发送邮件

服务停止时发送邮件

如何让 Ubuntu 在某个服务停止时向我发送邮件?

我已经运行了 mail(),因此我可以通过 cronjob 检查它,并在某个服务停止时发送邮件。怎么做?

例如:

sudo service apache2 status
 * apache2 is not running

在消息中使用 grep()?我是否必须每分钟检查一次。我想这对于服务器性能来说不是一个好主意?

有谁有什么建议吗?

答案1

  if ps ax | grep -v grep | grep apache2 > /dev/null
    then
        exit 0
    else
        echo "apache2 is not running!" | mail -s "Apache2 is down"
        sudo service apache2 start

    fi

关于运行 bash 脚本,这取决于您检查的频率,我认为每 15 分钟检查一次就足够了,或者每小时检查一次。

如果您想每 15 分钟检查一次,那就是 crontab 命令:

*/15 * * * * /tmp/checkservice.sh >/dev/null 2>&1

这将每 15 分钟检查一次服务,如果服务未运行,它将向您发送一封电子邮件,如果您希望此任务也自动化,您还可以在其他部分添加自动启动代码。

相关内容