0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

监控你的站点访问是否正常

阿铭linux 来源:阿铭linux 作者:阿铭linux 2022-12-06 14:38 次阅读

今日练习题

【需求】

写一个监控脚本,监控某站点访问是否正常。

提示:

1)可以将访问的站点以参数的形式提供,例如

sh xxx.sh www.aminglinux.com
2)状态码为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

    用于多站点并行测试的ACS集成测试系统,看完就懂了

    用于多站点并行测试的ACS集成测试系统,看完就懂了
    发表于 05-06 07:11

    无法访问站点以下载打开的stm32系统工作台如何解决

    我无法访问站点以下载打开的 stm32 系统工作台。我的紧急情况!
    发表于 12-16 06:50

    使用tmpfs组件保存在RAM中的数据在设备软复位后是否仍能正常访问

    想确认下,,之前使用tmpfs组件保存在RAM中的数据,在设备软复位后,是否仍能正常访问
    发表于 02-10 14:06

    source.codeaurora.org无法访问站点是为什么?

    source.codeaurora.org 坏了?无法访问站点
    发表于 04-21 07:03

    本地站点网格作业监控模块的设计和实现

    为构建基于用户网格身份的本地站点网格作业监控系统,该文在分析和研究WSRF 规范和WS-GRAM 实现机制的基础上给出网格作业监控模块的设计方案和体系结构,并阐述在其原型系统
    发表于 04-16 11:21 18次下载

    迅驰本本发热巨大是否正常

    迅驰本本发热巨大是否正常 想问下,我的IBMX31笔记本发热很大,正常吗?  所指的发热量很大是以什么标准来衡量呢?
    发表于 01-25 10:49 574次阅读

    微软Chromium Edge用户可快速访问站点

    据外媒报道,微软早前正式向Edge浏览器的InPrivate、Canary、以及Dev通道推送了必应浏览器的私密保护功能,现在用户可以在新的Edge Chromium中将相关站点固定到Windows任务栏中,由此一来用户可更快速地访问自己的常用
    的头像 发表于 12-23 16:15 2978次阅读

    基于组态软件的分布式站点数据监控方案

    行业应用项目通常由多个分散在各地的站点组成,每个站点中有PLC(各个品牌和接口类型),网络摄像头,采集器和传感器等组成,需要将现场的数据传输到远端数据中心的组态软件上实现数据监控,应用场景有防汛
    发表于 09-11 10:32 406次阅读

    智慧农村污水站点监控方案设计

    智慧农村污水站点监控方案设计
    发表于 07-23 09:36 2次下载

    基于RFID的访问控制和监控系统

    电子发烧友网站提供《基于RFID的访问控制和监控系统.zip》资料免费下载
    发表于 11-28 09:53 0次下载
    基于RFID的<b class='flag-5'>访问</b>控制和<b class='flag-5'>监控</b>系统

    如何检查消防应急灯是否正常工作?

    如何检查消防应急灯是否正常工作? 检查消防应急灯是否正常工作需要按照以下步骤进行: 一、查看外观是否完整 首先,要检查消防应急灯的外观
    的头像 发表于 11-08 16:41 6135次阅读

    恒讯科技分析:云监控系统的站点监控类型有哪些?

    监控系统中的站点监控主要用于检测和报告关于网站、应用程序或网络服务的可用性和性能的信息。站点监控类型通常包括以下几种: 一、HTTP/HT
    的头像 发表于 12-28 17:26 441次阅读

    如何判断继电器是否正常工作

    判断继电器是否正常工作是一个涉及多个方面的过程,主要包括外观检查、电气性能测试以及实际应用中的表现等。以下将从这些方面详细阐述如何判断继电器是否正常工作。
    的头像 发表于 09-10 11:06 859次阅读

    如何测试光纤是否正常

    测试光纤是否正常,可以通过多种方法进行,以下是一些常用的测试步骤和方法: 一、观察指示灯 检查设备指示灯 :如果使用的是带有指示灯的设备(如交换机、光模块、光纤收发器等),首先观察指示灯的状态
    的头像 发表于 09-24 09:35 1198次阅读