#!bin/bash
#功能:监控 HTTP 服务器的状态(测试返回码)
#作者:liusingbon
#设置变量,url 为你需要检测的目标网站的网址(IP 或域名)
url=http://192.168.2.1/index.html
#定义函数 check_http
#使用 curl 命令检查 http 服务器的状态
#-m 设置 curl 不管访问成功或失败,最大消耗的时间为 5 秒,5 秒连接服务为相应则视为无法连接
#-s 设置静默连接,不显示连接时的连接速度、时间消耗等信息
#-o 将 curl 下载的页面内容导出到/dev/null(默认会在屏幕显示页面内容)
#-w 设置 curl 命令需要显示的内容%{http_code},指定 curl 返回服务器的状态码
function check_http {
status_code=$(curl -m 5 -s -o /dev/null -w %{http_code} $url)
}
while :
do
check_http
date=$(date +%Y%m%d-%H:%M:%S)
#生成报警邮件的内容
echo "当前时间为:$date
$url 服务器异常,状态码为${status_code}.
请尽快排查异常" > /tmp/http$$.pid
#指定测试服务器状态的函数,并根据返回码决定是发送邮件报警还是将正常信息写入日志
if [ $status_code -ne 200 ];then
mail -s Warning root < /tmp/http$$.pid
else
echo "$url 连接正常" >> /var/log/http.log
fi
sleep 5
done
相关文章
- VS2017 启动调试出现 无法启动程序“http://localhost:15613” 操作在当前状态中是非法的。 同时附加进程也是错误的解决方法
- k8s中使用prometheus operator监控外部服务器部署的windows exporter
- java 写的能够响应浏览器请求的 http 服务器
- 将执行的ssh脚本时间戳记录到服务器上的文件中
- svn 服务器搭建 ,采用http的方式加密用户。
- 基于 Flink+Pravega 的游戏服务器监控与调节系统设计
- Apache服务器的的日志监控
- linux下对服务器性能监控shell脚本
- 怎样建立HTTP长连接,能不能给下客户端和服务器端的代码?
- 配置Mac自带的Apache http服务器