带有curl的Linux脚本,用于递归地检查Web服务是否已启动

6ojccjat  于 2023-06-23  发布在  Linux
关注(0)|答案(1)|浏览(147)

我想创建一个Linux脚本来递归地检查Web服务是否已启动,如果已关闭,则等待一段时间并再次检查。
我已经写了下面的脚本使用curl将检查是否Web服务,如果是的话,它会回显消息,并与失败相同。

test_command='curl -sL \
    -w "%{http_code}\\n" \
    "http://www.google.com:8080/" \
    -o /dev/null \
    --connect-timeout 3 \
    --max-time 5'

if [ $(test_command) == "200" ] ; 
then
   echo "OK" ;
else
   echo "KO" ;
fi

我现在正在尝试在else部分添加递归代码,以便如果web服务在部署后尚未启动,则它将在else部分添加一些等待,并将在几秒钟后再次检查该web服务的状态。

5cnsuln7

5cnsuln71#

关于Bash中关于递归函数的注解,我创建了一个小测试,乍一看似乎是可行的。

./conTest.sh

#! /bin/bash

  test_command()
  {

  http_code=$(curl -sL -x "http://localhost:3128" -w "%{http_code}\\n" "https://www.google.com/" -o /dev/null --connect-timeout 3 --max-time 5)

  if [ ${http_code} == "200" ] ;
  then
    echo "OK" ;
  else
    echo "KO" ;
    sleep 1 ; 
    test_command ;
  fi

  }

  test_command ;

也许有人可以提供一个更优雅的解决方案或有其他的想法。

相关问题