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

标签 http bash shell http-headers

我觉得我错过了明显的东西,但使用 man [curl|wget] 或 google(“http”是一个糟糕的搜索词)都没有成功。我正在寻找对我们经常失败的网络服务器之一的快速修复,并返回状态代码 500 和一条错误消息。一旦发生这种情况,就需要重新启动。

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

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

有问题的服务器是 ubuntu 8.04 最小安装,只安装了足够的包来运行它当前需要的东西。在 bash 中完成任务没有硬性要求,但我希望它在这样一个最小的环境中运行而无需安装更多的解释器。

(我非常熟悉脚本,将 http 状态代码分配给环境变量的命令/选项就足够了 - 这就是我一直在寻找但找不到的东西。)

最佳答案

我没有在 500 代码上测试过它,但它适用于其他代码,如 200、302 和 404。

response=$(curl --write-out '%{http_code}' --silent --output /dev/null servername)

注意,应引用为 --write-out 提供的格式。 正如@ibai 所建议的那样,添加 --head 以发出仅 HEAD 请求。这将在检索成功时节省时间,因为不会传输页面内容。

关于http - 如何评估来自 bash/shell 脚本的 http 响应代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2220301/

相关文章:

perl - 如何在 Perl 中编写一个简单的 HTTP 代理?

rest - 在 Rest 中使用 POST 进行删除/更新?

c++ - 我可以使用什么库在 C++ 中发送 POST 和 GET 请求?

Linux - 查找路由器 IPv6 全局地址

php - shell_exec 不工作无法转换 pdftotext

linux - 学习 bash : Append a line to list of files

http - 使用 VBS 发送文件和参数 HTTP Post

mysql - 使用 txt 文件和 bash 脚本填充 MySQL 表

c++ - 在 C++ 中将 .docx 转换为 .txt

shell - 在 shell 脚本中杀死后台进程