温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么使用Shell脚本程序监控网站URL是否正常

发布时间:2021-11-06 17:27:39 来源:亿速云 阅读:329 作者:柒染 栏目:建站服务器

这篇文章给大家介绍怎么使用Shell脚本程序监控网站URL是否正常,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

监控网站URL是否正常最常见的方法莫过于wget和curl 命令 了,这两个 命令 都是非常强大的,强大到网友查看帮助都无从选择的地步了,今天呢,老男孩老师正好录制 Shell 编程实战课程。

wget命令

wget命令的参数非常多,至少也有数十个, 但是运维工作中常用的并不多,老男孩老师把最有用的列表如下。

 wget命令 	 下载网页或文件
 --spider 	 模拟爬虫的行为去访问网站,但不会下载网页
 -q, --quiet 	 安静的访问,禁止输出,类似-o /dev/null功能
 -o, --output-file=FILE 	 记录输出到文件
 -T, --timeout=SECONDS 	 访问网站的超时时间
 -t, --tries=NUMBER 	 当网站异常时重试网站的次数

实际监控方法如下:利用wget命令返回值确定网站是否正常

  [root@oldboy ~]# wget --spider -T 5 -q -t 2 www.oldboyedu.com
  [root@oldboy ~]# echo $? #< ==利用返回值确定网站是否正常。
  0

curl命令

curl命令的参数比wget的参数还多,但运维中常用的参数也并不多,因此也是列表如下:

 curl命令 	 访问网站url
 -I/--head 	 显示响应头信息
 -m/--max-time 	 访问超时的时间
 -o/--output 	 记录访问信息到文件
 -s/--silent 	 沉默模式访问,就是不输出信息
 -w/--write-out 	 以固定特殊的格式输出,例如:%{http_code},输出状态码

实际监控方法

1、利用curl命令返回值确定网站是否正常

  [root@oldboy ~]# curl -s -o /dev/null www.oldboyedu.com
  [root@oldboy ~]# echo $?
  0

2、获取命令执行后的状态码(200表示正常)

  [root@oldboy ~]# curl -I -m 5 -s -w "%{http_code}\n" -o /dev/null www.baidu.com
  200

3 开发 Shell 脚本 实现监控指定的URL是否正常

  解答:
  方法1:
  #!/bin/sh
  function usage() { #< ==帮助函数
  echo $"usage:$0 url"
  exit 1
  }
  function check_url() { #<==检测URL函数。
  wget --spider -q -o /dev/null --tries=1 -T 5 $1
  #<==采用wget返回值方法,这里的$1就是函数传参。
  #curl -s -o /dev/null $1 #<==采用curl返回值方法也是可以的。
  if [ $? -eq 0 ]
  then
  echo "$1 is yes."
  exit 0
  else
  echo "$1 is fail."
  exit 1
  fi
  }
  function main() { #<==主函数。
  if [ $# -ne 1 ] #<==如果传入的多个参数,则打印帮助函数,提示用户。
  then
  usage
  fi
  check_url $1 #<==接收函数的传参,即把结尾的$*传到这里。
  }
  main $* #<==这里的$*就是把命令行接收的所有参数作为函数参数传给函数内部,常用手法。

实践结果

  [root@oldboy ~]# sh checkurl.sh www.oldboyedu.com
  www.oldboyedu.com is ok
  [root@oldboy ~]# sh checkurl.sh www.baidu.com
  www.baidu.com is ok
  [root@oldboy ~]# sh checkurl.sh 10.0.0.8
  10.0.0.8 is fail
  方法2:
  [root@oldboy ~]# cat checkurl1.sh
  #!/bin/bash
  ##############################################################
  # File Name: checkurl.sh
  # Version: V1.0
  # Author: oldboy
  # Organization: www.oldboyedu.com
  # Created Time : 2018-06-07 18:29:19
  ##############################################################
  usage(){
  echo "Usage:$0 url"
  exit 1
  }
  checkurl(){
  local num=`curl -I -m 5 -s -w "%{http_code}\n" -o /dev/null|grep 200|wc -l`
  if [ $num -eq 1 ] #< ==采用获取状态码,并转为数字的方式判断,如果301认为正确也可以加上egrep过滤。
  then
  echo "$1 is ok"
  else
  echo "$1 is fail"
  fi
  }
  main(){
  if [ $# -ne 1 ]
  then
  usage
  fi
  checkurl $1
  }
  main $*

实践结果

  [root@oldboy ~]# sh checkurl.sh www.oldboyedu.com
  www.oldboyedu.com is ok
  [root@oldboy ~]# sh checkurl.sh www.baidu.com
  www.baidu.com is ok
  [root@oldboy ~]# sh checkurl.sh 10.0.0.8
  10.0.0.8 is fail

关于怎么使用Shell脚本程序监控网站URL是否正常就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI