使用 wget 检查 Linux 中两个服务器之间的连接时如何获取准确的状态代码?



我们有新的Linux DB服务器。我正在编写一个脚本来检查从我们的服务器到新数据库服务器的连接。根据退出状态代码,我编写了脚本,以便在连接/连接被拒绝或连接超时时提供输出。

我们所有的服务器都没有telnet,所以我必须与wget核实。

用于捕获状态的 Ny 示例代码:

m=`echo $?`
if [ $m -eq 124 ]; then
b="Connection Timed Out"
else
if [ $m -eq 6 ]; then
b="Connected"
else
if [ $m -eq 0 ]; then
b="Connected"
else
if [ $m -eq 4 ]; then
b="Connection Refused"

但是对于新的 Linux 数据库服务器,我们得到一个不同的状态代码为 258,即使它显示为已连接:

--2019-09-18 09:53:14--  http://xxx:80/
Resolving xxxxx... xxx
Connecting to xxxx|xxxx|:80... connected.
HTTP request sent, awaiting response...  
echo $?
258

即使它具有连接性,现在也具有误导性。请建议我们如何获得确切的状态。

您可以使用 HTTP 状态代码进行检查。

DB_STATUS_RESPONSE="$(wget --spider --server-response http://ipecho.net/plain 2>&1 | awk '/^  HTTP/{print $2}')"
if [ $DB_STATUS_RESPONSE -eq 200 ]; then b="Connected"; fi
$ echo $b
Connected

最新更新