Definir o tempo limite para a resposta da página da web com curl

15

Eu uso uma ferramenta para monitorar se a página da web está funcionando.

A ferramenta usa o curlcomando internamente para buscar a saída.

No entanto, quando uma página da Web leva mais tempo para responder, ela retorna com um TIMEOUTerro. Não há como aumentar o tempo limite da ferramenta.

Existe alguma maneira de definir / modificar o período de tempo limite para uma resposta de uma página da web?

Existe alguma variável que possa ser modificada?

user80040
fonte

Respostas:

22

Você pode usar a -mopção:

-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.

Isso inclui tempo para conectar, se você desejar especificá-lo separadamente, use a --connect-timeoutopção

cuonglm
fonte
4

Normalmente você faria isso com uma opção na linha de comando quando curlé chamado. Mas como você não pode mudar isso, existe outra maneira - você pode criar um arquivo de configuração curl. No unix, curlprocurará primeiro no diretório inicial do usuário que está executando o curl para um arquivo chamado .curlrc. Crie esse arquivo com a linha

connect-timeout = 10

para reduzir o tempo limite para 10 segundos. Ou você pode definir um tempo máximo para toda a operação, com a opção max-time:

max-time = 10
Jenny D
fonte
Essa é uma ótima ideia ... mas eu também queria saber, se existe alguma variável env específica para isso ou algo que possa ser definido no back-end como ulimit para aumentar a contagem de FD?
user80040
Não consigo encontrar nada parecido na página do manual.
Jenny D
4

o curl tem uma opção "conectar tempo limite":

--connect-timeout <seconds>

Se a sua "ferramenta" for um script, você poderá editá-lo manualmente. Mas /unix//a/148926/77959 é ainda melhor - edite o curl-config!

flowtron
fonte
Ya..adicionar a configuração é uma idéia brilhante .. mas eu também queria saber, se existe alguma variável env específica para isso ou algo que possa ser definido no back-end como ulimit para aumentar a contagem de FD?
user80040
@ user80040 Não, não há. Não há "back-end", o tempo limite não é algum tipo de limitação do sistema. O Curl faz a solicitação da web e decide o tempo limite com base em sua configuração.
Gilles 'SO- stop be evil'
0

Desde Curlque você pode usar esta opção --connect-timeout: Tempo máximo em segundos que permitem a conexão com o servidor a tomar. Isso limita apenas a fase de conexão, uma vez curlconectada, essa opção não tem mais utilidade. Veja também a --max-timeopção

Thushi
fonte