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