如何使用curl命令检查从Linux服务器下载文件所用的时间?

如何使用curl命令检查从Linux服务器下载文件所用的时间?

我正在测试两台 Linux 服务器之间的延迟。 A linux服务器是服务器,B linux服务器是客户端。我可以使用命令成功下载文件curl。但时间太快了,可能在300-500ms左右。

当我尝试通过以下命令使用时,curl我看不到下载文件所花费的时间。想知道如何查看下载小文件所花费的时间?

curl -0 "http://server IP/filename" --output filename
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 2191k  100 2191k    0     0  8278k      0 --:--:-- --:--:-- --:--:-- 8302k

答案1

Curl 有一个功能,可以将有关已完成传输的信息打印到标准输出。它涉及--write-outor-w选项以及相应的格式字符串(类似于printf格式字符串)。

手册页描述了相当多的格式规范,其中包括一些描述连接启动和会话各个阶段之间所用时间(DNS 查找、TCP 连接准备、重定向到不同 URL、传输开始等)的规范。以及连接的结束(或“传输”)。但是,出于您的目的,我认为您只需要两个。使用与您类似的示例:

curl -0 --output filename --write-out 'xfer_start=%{time_starttransfer}\nxfer_end=%{time_total}\n' "https://www.google.com/"
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 15166    0 15166    0     0  64085      0 --:--:-- --:--:-- --:--:-- 67404
xfer_start=0.214270
xfer_end=0.236651

我已使用此功能创建监控脚本,以测试从发送 URL 到 HTTP 响应代码返回期间 Web 服务器的响应能力。看起来效果很好。

相关内容