curlを使用してWebページの応答のタイムアウトを設定する


15

ツールを使用して、Webページが稼働しているかどうかを監視します。

ツールは、curlコマンドを内部的に使用して出力を取得します。

ただし、Webページの応答に時間がかかると、TIMEOUTエラーが返されます。ツールからタイムアウトを増やす方法はありません。

Webページからの応答のタイムアウト期間を設定/変更する方法はありますか?

変更できる変数はありますか?

回答:


22

-mオプションを使用できます:

-m, --max-time <seconds>
              Maximum time in seconds that you allow the  whole  operation  to
              take.   This is useful for preventing your batch jobs from hang‐
              ing for hours due to slow networks or  links  going  down.   See
              also the --connect-timeout option.

              If this option is used several times, the last one will be used.

これには接続時間も含まれ--connect-timeoutます。個別に指定する場合は、オプションを使用します。


4

通常は、コマンドラインのオプションcurlが呼び出されたときにこれを行います。ただし、これを変更することはできないため、別の方法があります-の設定ファイルを作成できますcurl。Unixでは、curl最初にcurlと呼ばれるファイルのcurlを実行しているユーザーのホームディレクトリを検索します.curlrc。次の行でそのファイルを作成します

connect-timeout = 10

タイムアウトを10秒に短縮します。または、次のオプションを使用して、操作全体の最大時間を設定できますmax-time

max-time = 10

それは素晴らしいアイデアです。しかし、FDカウントを増やすためにulimitのようなバックエンドから設定できる特定のenv変数があるかどうかも疑問に思っていました。
user80040 14

私はマニュアルページでそのようなものを見つけることができません。
ジェニーD 14

4

curlには「接続タイムアウト」オプションがあります。

--connect-timeout <seconds>

「ツール」がスクリプトの場合、手動で編集できます。しかし、https://unix.stackexchange.com/a/148926/77959はさらに優れています-curl-configを編集してください


Ya..configを追加するのはかなりいい考えですが、そのための特定のenv変数またはulimitのようなバックエンドから設定してFDカウントを増やすことができるものがあるかどうかも疑問に思っていましたか?
user80040 14

@ user80040いいえ、ありません。「バックエンド」はなく、タイムアウトはシステムの制限ではありません。CurlはWeb要求を行い、その構成に基づいてタイムアウトすることを決定します。
ジル 'SO-悪であるのをやめる' 14

0

Curlこのオプションを使用することができます--connect-timeout:秒の最大時間を、あなたは、サーバーへの接続が取ることが許可されていること。これは、接続フェーズを制限するだけcurlです。接続すると、このオプションは使用できなくなります。--max-timeオプションも参照してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.