获取到指定的pod name
viewer=
kubectl -n skiff-nsfdemo-$ns get pod | grep viewer | awk '{print $1}'
根据pod name 获取指定pod IP
viewerIp=
kubectl -n skiff-nsfdemo-$ns get pod -o wide | grep viewer | awk '{print $6}'
通过curl命令返回的参数判断请求是否成功
curl -I -s --connect-timeout 5 -m 5 -w "%{http_code}" -o /dev/null http://$viewerIp:8790/echobyecho?time=1
ns=$1
./shell.sh时可以传参,例如./shell.sh test
即test=$1
ns=$1
viewer=`kubectl -n skiff-nsfdemo-$ns get pod | grep viewer | awk '{print $1}'`
viewerIp=`kubectl -n skiff-nsfdemo-$ns get pod -o wide | grep viewer | awk '{print $6}'`
HttpCode=`curl -I -s --connect-timeout 5 -m 5 -w "%{http_code}" -o /dev/null http://$viewerIp:8790/echobyecho?time=1`
if (( "$HttpCode"=="200" ));then
echo "*************************"
echo "HTTP-DEMO 可用!(skiff-nsfdemo-$ns)"
echo "*************************"
echo "HTTP-DEMO 不可用!(skiff-nsfdemo-$ns)"
echo "重启所有skiff-nsfdemo-$ns下HTTP-DOMO...预计两分钟"
HttpDemo=`kubectl -n skiff-nsfdemo-$ns get pod | grep -v dubbo | grep -v NAME | awk '{print $1}'`
kubectl delete pod -n skiff-nsfdemo-$ns $HttpDemo
sleep 120s
echo "HTTP $ns服务重启完成"
DubboCode=`curl -I -s --connect-timeout 5 -m 5 -w "%{http_code}" -o /dev/null http://$viewerIp:8790/dubbo/send/provider`
if (( "$DubboCode"=="200" ));then
echo "*************************"
echo "Dubbo-DEMO 可用!(skiff-nsfdemo-$ns)"
echo "*************************"
echo "Dubbo-DEMO 不可用!(skiff-nsfdemo-$ns)"
echo "重启echo服务...预计2分钟"
DubboEcho=`kubectl -n skiff-nsfdemo-$ns get pod | grep echo | awk '{print $1}'`
kubectl delete pod -n skiff-nsfdemo-$ns $DubboEcho
sleep 120s
echo "重启wall服务...预计2分钟"
DubboWall=`kubectl -n skiff-nsfdemo-$ns get pod | grep wall | awk '{print $1}'`
kubectl delete pod -n skiff-nsfdemo-$ns $DubboWall
sleep 120s
echo "重启viewer服务...预计2分钟"
DubboViewer=`kubectl -n skiff-nsfdemo-$ns get pod | grep viewer | awk '{print $1}'`
kubectl delete pod -n skiff-nsfdemo-$ns $DubboViewer
sleep 120s
echo "Dubbo $ns服务重启完成"
echo "*************************"
获取到指定的pod nameviewer=kubectl -n skiff-nsfdemo-$ns get pod | grep viewer | awk '{print $1}'根据pod name 获取指定pod IPviewerIp=kubectl -n skiff-nsfdemo-$ns get pod -o wide | grep viewer | awk '{print $6}'通过curl命令返回的参数判断请求是否成功curl -I -s --connect-timeo
声明:本文参考
http://wxnacy.com/2019/06/06/curl-return-code/
【适用场景】:shell脚本判断tomcat是否启动完成
【适用人群】:shell小白
【问题描述】项目有N个tomcat,互相是有依赖的。必须先启动某个tomcat,才能启动其他的tomcat。如何判断tomcat是否启动完成呢?
【解决方案】
curl -sIL -w “%{http_code}\n” -o /dev/null http://baidu.com
打印出状态码:
echo $(cu
最近在做CI/CD,其中就不乏编写脚本,在进行新版本发布后,需要重新启动程序,这里需要等待程序启动成功后,再进行测试脚本的执行。在Linux系统下直接使用 curl 命令调用http,非常方便。在windows下,我安装了curl,进行尝试,直接在cmd窗口中调用,命令输出为我期待的结果,但是写入bat中捕获不了输出结果,所以最后windows下采用的自己编写java程序进行判断的方式。
linu...
这篇我们介绍一下怎样利用 shell 的功能去封装一个 curl 的请求
并把请求的结果做个初步的判断
这个只是个最简单的,如果有需要可以在这个基础上进行各种其他的判断,结合一些其他的工具对网站进行监控。
执行脚本: ./curl.sh www.baidu.com
#!/bin/bash
function httpRequest()
#curl 请求
通过curl命令来访问指定的url
curl -I -m 10 -o /dev/null -s -w %{http_code} http://localhost:8080/test
curl参数说明:
-I --head 仅返回头部信息,使用HEAD请求
-m 10 最多查...
#******************************************************
# Author : 枫叶20214
# Last modified : 2021-06-06
# Filename : restart-pod
# Description : 批量重启pod服务
#****************************
rancher kubectl get
pod -n ${
k8sNamespace} | grep Evicted | awk '{print \$1}' | xargs -i rancher kubectl delete
pod {} -n ${
k8sNamespace}
num=0
while [[ ${num} -lt 60 ]]
echo "INFO:Begin Upgrade ${serviceName},Please Wait..."
sleep 10
由于Kubernetes是一个分布式系统,并且组件特别的多,分布式系统有一个很大的难点就是应用管理,当其中一个组件或者服务损坏的时候,必须能够在承受的时间内发现它,并且最终修复它,而且,这些都是不需要人为干预的。
默认情况下,一旦k8s里面有pod中的Container启动,就向他发送通讯请求,而当通讯中断并且在规定时间内无法恢复的时候,便认定该pod崩溃,并且会重启该pod,但是,k8s提供了一种更好方式来监控pod内部Container的状态,就是健康探测器,探测器有两种,liveness和...