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

    文章

    1983

    浏览量

    54591
  • 脚本
    +关注

    关注

    1

    文章

    372

    浏览量

    14636

原文标题:监控你的站点访问是否正常

文章出处:【微信号: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

    燃气站点分布式监控系统设计与实现_郝梦捷

    燃气站点分布式监控系统设计与实现_郝梦捷
    发表于 01-12 19:56 0次下载

    复辟无望?金立手机的官网已经无法正常访问

    假如今天之后金立手机官网再都不能正常访问,对于外界而言金立这次是真的“复辟无望”了。
    的头像 发表于 04-10 14:30 3221次阅读

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

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

    如何判断万用表是否正常

    万用表分数字式和指针式。下面分别介绍一下判断是否正常的方法。
    的头像 发表于 06-11 18:00 2.1w次阅读

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

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

    如何判断安全光幕是否正常工作?

    如何判断安全光幕是否正常工作? 很多客户初次使用安全光幕的时候,就会比较疑惑,光幕是否安装正确,光幕是否进入正常工作状态。 因为安全光幕的作
    的头像 发表于 08-30 09:35 266次阅读
    如何判断安全光幕<b class='flag-5'>是否</b><b class='flag-5'>正常</b>工作?

    如何判断安全光幕是否正常工作?

    如何判断安全光幕是否正常工作? 很多客户初次使用安全光幕的时候,就会比较疑惑,光幕是否安装正确,光幕是否进入正常工作状态。 因为安全光幕的作
    的头像 发表于 09-04 10:40 288次阅读
    如何判断安全光幕<b class='flag-5'>是否</b><b class='flag-5'>正常</b>工作?

    如何判断安全光幕是否正常工作?

    如何判断安全光幕是否正常工作? 很多客户初次使用安全光幕的时候,就会比较疑惑,光幕是否安装正确,光幕是否进入正常工作状态。 因为安全光幕的作
    的头像 发表于 09-06 10:20 241次阅读
    如何判断安全光幕<b class='flag-5'>是否</b><b class='flag-5'>正常</b>工作?

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

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

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

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