今日练习题
【需求】
写一个监控脚本,监控某站点访问是否正常。
提示:
1)可以将访问的站点以参数的形式提供,例如
sh xxx.sh www.aminglinux.com2)状态码为2xx或者3xx表示正常
3)正常时echo正常,不正常时echo不正常
【分析】
1)脚本是带有参数的,第一个参数就是要访问的站点URL,传递的第一个参数,在脚本里用$1表示;
2)获取站点状态码,使用curl工具。其中curl的-I参数只获取header信息,里面就包含状态码。例如:
curl -I 'www.aminglinux.com' HTTP/1.1 301 Moved Permanently Server: nginx Date: Fri, 02 Dec 2022 0337 GMT Content-Type: text/html Content-Length: 162 Connection: keep-alive Location:http://www.apelearn.com/从结果中可以看到,我们想要的状态码就在第一行。所以,可以将curl的执行结果通过管道符进一步处理。但在这儿有个问题,curl的结果一旦加上管道符后,那么就会多出来一个如下内容的输出
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0162000000--:--:----:--:----:--:--0这个内容属于错误输出内容,需要做一下处理,加一个 2>/dev/null即可。
另外curl访问一个有问题的URL时,时间比较久,所以有必要给它加一个超时时间,比如设置为3秒,这样能保证即使这个URL有问题也能在3秒内执行完成。
code=`curl --connect-timeout 3 -I $1 2>/dev/null |grep 'HTTP'|awk '{print $2}'`
最终拿到状态码,需要做对比,看是否是2xx或者3xx。我的方法是使用grep做正则匹配:
echo $code |grep -qE '^2[0-9][0-9]|^3[0-9][0-9]'
【参考答案】
#!/bin/bash if ! which curl &>/dev/null then echo "本机没有安装curl" yum install -y curl if ! which curl &>/dev/null then echo "没有安装成功curl" exit 1 fi fi code=`curl --connect-timeout 3 -I $1 2>/dev/null |grep 'HTTP'|awk '{print $2}'` if echo $code |grep -qE '^2[0-9][0-9]|^3[0-9][0-9]' then echo "$1访问正常" else echo "$1访问不正常" fi
审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
监控
+关注
关注
6文章
2208浏览量
55194 -
脚本
+关注
关注
1文章
389浏览量
14864
原文标题:监控你的站点访问是否正常
文章出处:【微信号:aming_linux,微信公众号:阿铭linux】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
支持全球探测点的新一代网站监控
摘要: 当你的网站开发完成了,你是不是想知道全国各地到服务器的网络访问情况。 当你的网站上线了,你是不是不想变成熊猫眼24小时盯着网站运行情况。 当你的网站商业化了,你是不是想对竞争对
发表于 06-08 16:01
本地站点网格作业监控模块的设计和实现
为构建基于用户网格身份的本地站点网格作业监控系统,该文在分析和研究WSRF 规范和WS-GRAM 实现机制的基础上给出网格作业监控模块的设计方案和体系结构,并阐述在其原型系统
发表于 04-16 11:21
•18次下载
微软Chromium Edge用户可快速访问站点
据外媒报道,微软早前正式向Edge浏览器的InPrivate、Canary、以及Dev通道推送了必应浏览器的私密保护功能,现在用户可以在新的Edge Chromium中将相关站点固定到Windows任务栏中,由此一来用户可更快速地访问自己的常用
基于组态软件的分布式站点数据监控方案
行业应用项目通常由多个分散在各地的站点组成,每个站点中有PLC(各个品牌和接口类型),网络摄像头,采集器和传感器等组成,需要将现场的数据传输到远端数据中心的组态软件上实现数据监控,应用场景有防汛
发表于 09-11 10:32
•406次阅读
如何检查消防应急灯是否正常工作?
如何检查消防应急灯是否正常工作? 检查消防应急灯是否正常工作需要按照以下步骤进行: 一、查看外观是否完整 首先,要检查消防应急灯的外观
恒讯科技分析:云监控系统的站点监控类型有哪些?
云监控系统中的站点监控主要用于检测和报告关于网站、应用程序或网络服务的可用性和性能的信息。站点监控类型通常包括以下几种: 一、HTTP/HT
如何判断继电器是否正常工作
判断继电器是否正常工作是一个涉及多个方面的过程,主要包括外观检查、电气性能测试以及实际应用中的表现等。以下将从这些方面详细阐述如何判断继电器是否正常工作。
如何测试光纤是否正常
测试光纤是否正常,可以通过多种方法进行,以下是一些常用的测试步骤和方法: 一、观察指示灯 检查设备指示灯 :如果你使用的是带有指示灯的设备(如交换机、光模块、光纤收发器等),首先观察指示灯的状态
评论