批量检查URL状态的脚本

简介: 批量检查URL状态的脚本

在企业运维工作中,每一步操作完毕后都应该进行快速有效的检查,这是一名合格运维人员的良好习惯。在我们变更,nginx配置重启(包含reload),要会通过调用脚本获取header信息或模拟用户访问URL来自动检查Nginx的启动是否正常。最大限度的保证服务重启后,能够偶快速确定网站情况,而无需手工敲命令查看。这样如果有问题,快速回退上一版本的配置文件(配置前已做备份)。


#!/bin/bash
#
[ -f /etc/init.d/functions ] && . /etc/init.d/functions
DATE=$(date +%Y-%m-%d-%H-%M-%S)
MAIL=`which mail`
# mail name
NAME=(
liujian
e_yunwei
)
# check urls status
URLS=(
http://192.168.99.233:9004/webfof_login/login
http://www.aaca.com
)
# curl 获取状态码
curl_ip() {
  CURL=$(curl -o /dev/null -s --connect-timeout 5 -w '%{http_code}' $1|egrep "200|302"|wc -l)
  return $CURL
}
# 邮件
mail() {
     for m in ${NAME[*]}
     do
         echo "Retry curl $1 again is Failure,Please check url on $DATE" | $MAIL -s "Service state Warning" $m@erichfund.com
     done
}
# 主程序
main() {
   for n in ${URLS[*]}
   do
      curl_ip $n
      if [ $? -eq 1 ];then
         action "curl $n" /bin/true
      else
         action "curl $n" /bin/false
           curl_ip $n
           sleep 10
           if [ $CURL -eq 1 ];then
              action "Retry curl $n again" /bin/true
           else
              action "Retry curl $n again" /bin/false
              mail $n
          fi
      fi
   done
}
main
# crontab 添加定时任务5分钟执行一次。
# */5 * * * * /bin/bash /server/scripts/chk_url.sh &>/dev/null

例如:将百度腾讯阿里网站URL,放置到属组array


array=(
http://baidu.com
http://qq.com
http://taobao.com
)
# chmod +x chk_curl.sh
# sh chk_curl.sh


执行结果如下:


[root@localhost scripts]# sh chk_curl.sh
curl http://baidu.com                                      [  OK  ]
curl http://qq.com                                         [  OK  ]
curl http://taobao.com                                     [  OK  ]
相关文章
|
2月前
|
文字识别 小程序 API
视觉智能开放平台产品使用合集之使用SDK进行视频活体检查时,如何将视频URL传递给后端服务
视觉智能开放平台是指提供一系列基于视觉识别技术的API和服务的平台,这些服务通常包括图像识别、人脸识别、物体检测、文字识别、场景理解等。企业或开发者可以通过调用这些API,快速将视觉智能功能集成到自己的应用或服务中,而无需从零开始研发相关算法和技术。以下是一些常见的视觉智能开放平台产品及其应用场景的概览。
|
2月前
|
域名解析 存储 缓存
HTTP请求流程概览:浏览器构建请求行含方法、URL和版本;检查缓存;解析IP与端口
【6月更文挑战第23天】 HTTP请求流程概览:浏览器构建请求行含方法、URL和版本;检查缓存;解析IP与端口;TCP连接(HTTP/1.1可能需排队);三次握手;发送请求头与体;服务器处理并返回响应;TCP连接可能关闭或保持;浏览器接收并显示响应,更新缓存。HTTP版本间有差异。
47 5
|
3月前
|
数据采集 弹性计算 运维
检查URL可用性2
【4月更文挑战第30天】
28 0
|
前端开发 JavaScript 关系型数据库
宝塔设置PHP定时任务实战记录(定时任务、ajax异步刷新API、shell脚本、访问url)
宝塔设置PHP定时任务实战记录(定时任务、ajax异步刷新API、shell脚本、访问url)
618 0
|
测试技术
loadrunner 脚本开发-url解码
loadrunner 脚本开发-url解码
79 0
|
安全 JavaScript 前端开发
软件测试面试题:HTML-based script与URL-based script的脚本有什么区别?
软件测试面试题:HTML-based script与URL-based script的脚本有什么区别?
78 0
|
XML 移动开发 前端开发
web前端学习(十一)——HTML5中脚本、URL及XHTML的简单学习
web前端学习(十一)——HTML5中脚本、URL及XHTML的简单学习
web前端学习(十一)——HTML5中脚本、URL及XHTML的简单学习
|
JavaScript
js之检查有效的URL
js之检查有效的URL
4954 0