环境:ubuntu20.4、宝塔、进程守护管理器、ssmtp、mailutils

关于安装邮件发送程序,请参考ubuntu20.4配置服务器公网IP变动邮箱通知,这里就不再赘述了。

对于服务器来说在线率很重要,出现问题要能及时解决,但系统管理员不能一直守在电脑旁边,通过脚本监控网站出现问题及时通过mail通知管理员,如果是139邮箱还可免费手机短信通知。
通过系统直接发送mail容易被拦截,可使用 mail连接第三方smtp发送邮件,演示是使用qq邮箱收发件。

一、shell脚本,这里展示文件名为page1-ccn.sh

代码

#!/bin/bash
#set -x
sudo -u www
while true
do
list=(www.baidu.com)
mail=mail@qq.com
date=$(date -d "today" +"%Y-%m-%d-%H:%M:%S")
i=0
id=${#list[*]}
while [ $i -lt $id ]
do
if ping -c1 ${list[$i]} >/dev/null
then
echo $date:服务器${list[$i]}能ping通。
else
if curl -m 10 ${list[$i]} > /dev/null 
then
echo $date:服务器${list[$i]} ping不通,能打开网页。
else
echo "您好,据系统监测服务器${list[$i]}不能访问且ping不通!故障发生时间:$date"|mail -s "站点:${list[$i]}不能连接! 故障发生时间:$date" $mail 
until
date=$(date -d "today" +"%Y-%m-%d-%H:%M:%S")
ping -c1 ${list[$i]} >/dev/null && echo "恭喜!服务器${list[$i]}已恢复正常,恢复时间:$date"|mail -s "站点:${list[$i]}已恢复正常! 恢复时间:$date" $mail
do
sleep 5
done
fi
fi
let i++
done
sleep 6 #单位:秒,这里建填议60
done


二、进入宝塔的进程守护管理器添加进程

添加完成后点击确定

查看日志是否能正常运行

三、多站点方案

首先需要制作批量启动sh脚本

根据自建脚本修改,万万不可复制了事!

#!/bin/bash
sudo -u www cd /data/wwwroot/ping/
./80xco.sh & ./page1-ccn.sh & ./saas1-ccn.sh & ./saas88-8vip.sh & ./shop80xco.sh

把需要批量启动的sh进程放入文件内,这个类似于sh启动目录,把这个sh文件添加到进程守护管理器里面,就可以批量启动了,以后添加新站点监控时,只需把脚本名添加到这个sh文件即可。