用curl检查webservice的Linux脚本已启动

Ahm*_*aya 33 linux curl

我有一个网络服务 http://localhost/test/testweb

我想写一个脚本来检查webservice是否与卷曲有关

如果给出了curl参数,则返回200 OKok true false,以便我可以使用它是linux脚本中的if-else块

Bur*_*lid 62

curl -sL -w "%{http_code}\\n" "http://www.google.com/" -o /dev/null
Run Code Online (Sandbox Code Playgroud)
  • -s =无声的cURL输出
  • -L =关注重定向
  • -w =自定义输出格式
  • -o =将HTML输出重定向到 /dev/null

例:

[~]$ curl -sL -w "%{http_code}\\n" "http://www.google.com/" -o /dev/null
200
Run Code Online (Sandbox Code Playgroud)

\\n如果我要捕获输出,我可能会删除.

  • **+ 1** - 充分利用curl详尽的命令行选项列表.一个加法可能是`-I`,因此使用HEAD方法而不是GET.这仍然可以验证是否可以生成页面,但通过删除HTML输出的主体可以节省一点带宽.(你仍然希望`-o/dev/null`以避免吐出其余的标题.) (3认同)

Zib*_*bri 7

我用:

curl -f -s -I "http://example.com" &>/dev/null && echo OK || echo FAIL
Run Code Online (Sandbox Code Playgroud)

-f --fail HTTP 错误时静默失败(根本没有输出)
-s --silent 静默模式
-I --head 仅显示文档信息

注意:
根据需要,您还可以删除“-I”,因为在某些情况下您需要执行 GET 而不是 HEAD


Moh*_*BIB 5

与@burhan-khalid 相同,但添加了--connect-timeout 3--max-time 5

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
Run Code Online (Sandbox Code Playgroud)