curlコマンドを使用してLinuxサーバーからファイルをダウンロードするのにかかる時間を確認する方法は?

curlコマンドを使用してLinuxサーバーからファイルをダウンロードするのにかかる時間を確認する方法は?

2つのLinuxサーバー間の待ち時間をテストしています。 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には、-wオプションとその形式文字列(printf形式文字列に似ています)が含まれます。

マニュアルページには、接続の開始とセッションのさまざまなステップ(DNSルックアップ、TCP接続の準備、別のURLへのリダイレクト、転送の開始など)との間の経過時間を説明するいくつかのフォーマット仕様が記載されています。接続(または「転送」)が終了します。しかし、あなたの目的には2つだけが必要だと思います。あなたに似た例を使用して:

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サーバーの応答性をテストする監視スクリプトを作成しました。とてもうまくいくようです。

関連情報