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时,直接进行邮件报警。

非常之简陋的一个网站报警脚本,后期会不断优化。

 

posted @ 2020-12-28 17:59  點燈的人  阅读(409)  评论(0编辑  收藏  举报