我正在测试两台 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-out
or-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 服务器的响应能力。看起来效果很好。