shell脚本使用curl获取访问网站的状态码

 
curl -I -m 10 -o /dev/null -s -w %{http_code} www.baidu.com

-I 仅测试HTTP头
-m 10 最多查询10s
-o /dev/null 屏蔽原有输出信息
-s silent
-w %{http_code} 控制额外输出
 
绑定 ip 测试:


curl -I -m 10  -H "www.baidu.com"  http://220.xxx.112.143 -o /dev/null -s -w %{http_code}

 

特别需要注意的是访问的url地址不能写localhost或者是127.0.0.1 ,这样写curl一直返回的状态码都是000,我测试了下本机的话写路由器分配的那个ip地址是可以正常返回状态值的。

 

现在附上我写的监听tomcat重启脚本,监听可以用crontab来实现

 

#!/bin/bash 
justWeb=`curl -I -m 10 -o /dev/null -s -w %{http_code} http://192.168.18.2/gw`;
echo 'justWeb ' $justWeb;
if [ "$justWeb"x != "200"x ] ; then
 
 procId=`ps -ef | grep tomcat |grep -v 'grep' | awk '{print $2}' | head -1`;
 /usr/local/apache-tomcat-7.0.62/bin/shutdown.sh;
 #/home/zzq/app/apache-tomcat-7.0.76/bin/shutdown.sh;
 dateTime=`date`;
 echo  $dateTime '检测到web服务状态码为: ' $justWeb  ' 正在关闭tomcat进程id : '$procId >>  ./restartTomcat.log;
 kill -9 $procId;
 /usr/local/apache-tomcat-7.0.62/bin/startup.sh;
 #/home/zzq/app/apache-tomcat-7.0.76/bin/startup.sh;
fi

 

 

 

 

 

posted on   愤怒的苹果ext  阅读(159)  评论(0编辑  收藏  举报

编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示