shell脚本监控网站,异常则进行邮件报警
服务器系统centos7.6
1、安装邮箱服务,一般服务器都已经安装了,查看是否安装。
yum list mailx
rpm -qa | grep mail
查看是已经安装了。
未安装的执行命令安装即可。
yum -y install mailx
配置mail,配置文件路径/etc/mail.rc
vim /etc/mail.rc
在尾部加入以下内容
set from=12345678@139.com ###(发送邮箱账号)
set smtp=smtp.139.com ###(发送邮箱smtp服务器地址,很多人使用的是qq的,qq的就需要修改,smtp.qq.com)
set smtp-auth-user=12345678 ###(发送邮箱账号,这里只需要写你的邮箱账号,不需要写@后面的字符)
set smtp-auth-password=123456abc ###(邮箱的密码)
set smtp-auth=login ###(登陆方式,这个不用改)
保存退出。
这里会使用到你邮箱的smtp服务,一般你的邮箱这个服务是关闭的,需要登录你的邮箱开启这个服务。我是139的邮箱,登陆邮箱开启这个服务。
smtp使用25,465端口,需要在防火墙放行此端口。
测试给邮箱发送一个邮件
echo “服务器存在异常,请登录服务器进行查看” | mail -s "服务器报警" 123@qq.com
mail邮箱服务搭建完成。
2、检测网站是否健康运行
编写一个shell脚本,当网站出现问题时,第一时间发送邮件报警,其实只要邮件服务能正常发送邮件,你想监控服务器,网站,数据库都是可以的。根据你的实际情况进行编写脚本就行。这边是一个简单的监控一个网站是否正常运行,如果返回值不为200时则发送邮件报警。
vim url-baojing.sh
#!/bin/bash
sta=`curl -I -m 10 -o /dev/null -s -w %{http_code} https://www.test.com/s/mapNum`
if [ $sta = "200" ]
then
echo "ok" >>/root/mail.txt
else
echo “PC高校可能存在问题,请及时查看。” | mail -s "服务器异常" mail1-test.com mail2-test.com
fi
#大概内容如下
获取自己网站的一个接口,不会经常变的。然后通过sta变量取值。
如果返回的值为200则输出到一个文件
如果返回值不为200时,直接进行邮件报警。
非常之简陋的一个网站报警脚本,后期会不断优化。