【问题标题】:Linux script with curl to check to check recursively if webservice is up带有 curl 的 Linux 脚本,用于检查以递归方式检查 Web 服务是否已启动
【发布时间】:2019-08-02 21:10:38
【问题描述】:

我想创建一个 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 服务的状态。

【问题讨论】:

标签: curl continuous-integration


【解决方案1】:

关于 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 ;

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

【讨论】:

    猜你喜欢
    • 2012-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-21
    • 2016-05-06
    • 2012-08-19
    • 2019-11-12
    • 2012-02-17
    相关资源
    最近更新 更多