![服务停止时发送邮件](https://linux22.com/image/1001284/%E6%9C%8D%E5%8A%A1%E5%81%9C%E6%AD%A2%E6%97%B6%E5%8F%91%E9%80%81%E9%82%AE%E4%BB%B6.png)
如何让 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 分钟检查一次服务,如果服务未运行,它将向您发送一封电子邮件,如果您希望此任务也自动化,您还可以在其他部分添加自动启动代码。