使用 curl 下载需要太长时间?试试在 cURL 中设置超时
cURL是一个出色的 网络通信工具 ,它代表“客户端 URL”。几乎所有设备都使用地球上连接到 Internet 的 cURL,cURL 最广泛的用途是 从终端中的远程服务器下载文件 。
连接到服务器以进行任何类型的通信的初始阶段是等待响应,延迟可能由于多种原因而发生,其中一些原因是服务器上的负载、网络带宽、延迟、抖动等。
如果延迟高于您希望等待的时间,您可以指定“超时”持续时间。
实现此目的的最佳方法是使用该`--connect-timeout选项。
curl --connect-timeout <duration> <URL>
您可以以秒(例如 5)、毫秒(例如 0.001)或秒和毫秒的组合(例如 4.20)指定超时,curl 将使用该时间作为响应的最长时间,直到连接被丢弃。
要了解有关在 cURL 中设置最大超时的更多信息,
使用“--connect-timeout”选项
cURL 有一个可选标志“--connect-timeout”,您可以在其中指定持续时间(以秒为单位),如果您的 cURL 版本为 7.32.0 或更高版本,您还可以将持续时间指定为十进制值。
您指定的值将设置等待远程服务器回复的最长时间。
以下是如何使用“--connect-timeout”标志的示例:
curl --connect-timeout 4.2 https://linuxhandbook.com
使用 '4.2' 和 '--connect-timeout' 标志意味着 cURL 将尝试连接到 'linuxhandbook.com',如果超过 4.2 秒,连接将被终止。
另一种“--max-time”选项
当您在批处理中执行多个操作时,使用“--max-time”标志,这个标志将设置整个操作的持续时间——比如下载一个大文件,因此,如果操作(例如下载文件)花费的时间超过指定的时间,它将终止操作。
$ curl --max-time 20 https://github.com/aristocratos/btop/releases/download/v1.2.3/btop-aarch64-linux-musl.tbz
这个 cURL 使用示例将下载一个文件。当“连接服务器”+“下载文件时间”的总时间大于我们这里指定的 20 秒时,将终止下载。
在这种情况下,文件大小太小,下载时间不会超过 20 秒,因此命令将成功执行。
结论
本文介绍了如何为连接到远程服务器的时间或整个网络操作的超时设置最大持续时间(超时)。