“curl:(56)SSL 读取:错误:00000000:lib(0):func(0):reason(0),errno 73”告诉我什么?

“curl:(56)SSL 读取:错误:00000000:lib(0):func(0):reason(0),errno 73”告诉我什么?

这个 cURL 错误是什么意思?在哪里可以找到更多相关信息?

curl: (56) SSL read: error:00000000:lib(0):func(0):reason(0), errno 73

我正在编写一个 shell 脚本来查询 Splunk API。在某些情况下,5 分钟后,我会收到此错误。有时我可以重新运行脚本,错误就会消失,我就会得到我想要的输出。

这是我在终端上看到的内容。

  % Total    % Received % Xferd  Average Speed          Time             Curr.
                                 Dload  Upload Total    Current  Left    Speed
  0     0    0     0    0     0      0      0 --:--:--  0:05:01 --:--:--     0
curl: (56) SSL read: error:00000000:lib(0):func(0):reason(0), errno 73

示例搜索如下。我将用“spock”​​代替主机名。此搜索在其他主机上确实成功,因此此特定搜索并非不正确并导致问题。

search index=os_nix host=spock source=/var/adm/messages latest=-30d NOT snmpd authentication (error OR fail OR failure) | head

我正在像这样构建我的命令。

URLPROTO='https://'
URLHOST='splunkapi.example.com'
URLPORT=':8089'
URLDIR='/servicesNS/admin/search/search/jobs/export'
URL="${URLPROTO}${URLHOST}${URLPORT}${URLDIR}"
luser=(read from user input)
lpassword=(read from user input)
OUTFILE=(generated from hostname and the type of search I'm running) 
mySEARCH=(read from input file)
USER=(User ID read from environment)

实际的命令是这样的。

curl -k -o "${OUTFILE}" -u ${luser:=${USER}}:${lpasswd} ${URL} -d search="${mySEARCH}" -d output_mode="csv"

我的脚本循环遍历主机列表,从外部文件读取,对每个主机执行多次搜索,从不同的外部文件读取。为了进一步说明,我可以运行我的脚本,在总共三十次搜索中,我会得到两到三次失败。整个运行不会失败,只有两三个单独的主机/搜索对会失败。失败不仅限于特定的主机/搜索对或特定的主机或特定的搜索,因为我可以重新运行我的脚本,而且失败很有可能成功。

cURL 错误试图告诉我什么?

如果这很重要的话,这就是 AIX。

curl 7.11.1 (powerpc-ibm-aix5.2.0.0) libcurl/7.11.1 OpenSSL/0.9.7g ipv6
Protocols: ftp gopher telnet dict ldap http file https ftps
Features: IPv6 SSL NTLM Largefile

答案1

与“错误编号”相关的名称应位于通常存放在某处的errno文件中,但通过网络搜索会出现以下结果:errno.h/usr/include

http://www.ioplex.com/~miallen/errcmp.html

对于 73 和 AIX 来说,这是“对等方重置连接”。因此,由于某种原因,对等方(或客户端和对等方之间的某物)重置了连接。

答案2

Curl 报告这些错误是因为 Splunk 没有返回任何数据。(我的搜索返回了大多数主机的数据,但特定时间窗口会导致它偶尔失败。)

Splunk 在 5 分钟后超时并断开 curl,错误号 73。curl 退出代码 (56) 为“接收网络数据失败”。Splunk 不发送任何内容,因此没有数据可接收。

感谢@thrig 和@OscarAkaElvis 的协助。

相关内容