如何评估bash/shell脚本中的http响应代码?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (24)

我觉得我错过了显而易见的,但没有成功man [curl|wget]或者谷歌(“http”是个糟糕的搜索词)。我正在寻找一个快速和肮脏的修补程序,我们的一个Web服务器经常失败,返回状态代码500与错误消息。一旦发生这种情况,就需要重新启动。

由于根本原因似乎很难找到,所以我们的目标是快速修复,希望它能够弥补时间,直到我们真正修复它(服务不需要高可用性)。

建议的解决方案是创建一个每5分钟运行一次的cron作业,检查http://localhost:8080/。如果返回状态代码为500,则将重新启动Web服务器。服务器将在一分钟内重新启动,因此不需要检查是否已经重新启动。

所讨论的服务器是一个ubuntu 8.04最小安装程序,安装的包刚好足够运行它当前所需的程序包。在bash中执行任务并不困难,但我希望它在这样一个最小的环境中运行,而不需要再安装任何解释器。

提问于
用户回答回答于

我还没有在500段代码上测试过这一点,但是它可以在200、302和404等其他代码上使用。

response=$(curl --write-out %{http_code} --silent --output /dev/null servername)
用户回答回答于
curl --write-out "%{http_code}\n" --silent --output /dev/null "$URL"

起作用了。如果没有,则必须按Report键查看代码本身。

扫码关注云+社区