shell脚本监控网站,异常则进行邮件报警

本文档介绍了如何在CentOS7.6系统上安装和配置邮件服务,包括使用`mailx`和编辑`/etc/mail.rc`文件设置SMTP服务器。同时,提供了一个bash脚本,用于30秒间隔检测多个网站的健康状况,当网站返回状态不是200时,将发送告警邮件。确保开启SMTP服务并开放所需端口,以便脚本正常工作。
摘要由CSDN通过智能技术生成

服务器系统centos7.6
1、安装邮箱服务,一般服务器都已经安装了,查看是否安装。
yum list mailx
rpm -qa | grep mail
查看是已经安装了。
img
未安装的执行命令安装即可。
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 ###(登陆方式,这个不用改)
img
保存退出。

这里会使用到你邮箱的smtp服务,一般你的邮箱这个服务是关闭的,需要登录你的邮箱开启这个服务。我是139的邮箱,登陆邮箱开启这个服务。
img
smtp使用25,465端口,需要在防火墙放行此端口。
测试给邮箱发送一个邮件
echo “服务器存在异常,请登录服务器进行查看” | mail -s “服务器报警” 123@qq.com
img
mail邮箱服务搭建完成。

2、检测网站是否健康运行
定义需要监控的网站地址,脚本30秒探测一次,当检测到网站返回状态不为200时,隔三秒在进行探测,三秒后再次探测不为200时则进行告警。

#!/bin/bash
#定义探测网站的列表
web_list=("https://www.zph.com" "https://okayfancy.com" "https://test.com")

#定义告警函数
function alert() {
	echo "$(date): $1 状态为:$2  请及时查看!"
	echo echo "$(date): $1 状态为:$2  请及时查看 !!!" | mail -s "服务器异常" mail1-test.com
}

#循环探测每个网站
while true; do
	for website in ${web_list[@]}; do
		response=$(curl -s -w %{http_code} $website -o /dev/null)
		if [ $response -ne 200 ]; then
			echo "$(date): $website 状态 $response"
			#如果状态异常,隔三秒在进行探测。隔三秒在进行探测还是异常则进行告警
			sleep 3
			response=$(curl -s -w %{http_code} $website -o /dev/null)
			if [ $response -ne 200 ]; then
				alert $website $response
			fi
		fi
	done
        sleep 30
done

#本地输出结果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值