Установить время ожидания ответа веб-страницы с помощью curl

15

Я использую инструмент для мониторинга, если веб-страница запущена и работает.

Инструмент использует curlкоманду для извлечения выходных данных.

Однако, когда веб-странице требуется больше времени для ответа, она возвращает TIMEOUTошибку. Я не могу увеличить время ожидания от инструмента.

Есть ли способ установить / изменить период ожидания ответа с веб-страницы?

Есть ли переменная, которая может быть изменена?

user80040
источник

Ответы:

23

Вы можете использовать -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опцию.

cuonglm
источник
4

Обычно вы делаете это с опцией в командной строке, когда curlвызывается. Но так как вы не можете изменить это, есть другой способ - вы можете создать файл конфигурации для curl. В Unix curlсначала заглянет в домашний каталог пользователя, который запускает curl, для поиска файла с именем .curlrc. Создайте этот файл со строкой

connect-timeout = 10

сократить время ожидания до 10 секунд. Или вы можете установить максимальное время для всей операции, с опцией max-time:

max-time = 10
Дженни Д
источник
Это отличная идея ... но мне также было интересно, есть ли какая-либо конкретная переменная env для этого или что-то, что можно установить из бэкэнда, например, ulimit, чтобы увеличить количество FD?
user80040
Я не могу найти ничего подобного на странице руководства.
Дженни Д
4

У curl есть опция «Тайм-аут соединения»:

--connect-timeout <seconds>

Если ваш «инструмент» представляет собой скрипт, вы можете вручную отредактировать его там. Но /unix//a/148926/77959 еще лучше - отредактируйте curl-config!

flowtron
источник
Я ... добавление конфигурации является довольно яркой идеей ... но мне также было интересно, есть ли какая-либо конкретная переменная env для этого или что-то, что можно установить из бэкэнда, например, ulimit, чтобы увеличить количество FD?
user80040
@ user80040 Нет, нет. Нет никакого «бэкенда», тайм-аут не является каким-то системным ограничением. Curl выполняет веб-запрос и принимает решение о превышении времени ожидания в зависимости от его конфигурации.
Жиль "ТАК - перестань быть злым"
0

От Curlвас можно использовать эту опцию --connect-timeout: Максимальное время в секундах, которое вы разрешаете соединению с сервером. Это ограничивает только фазу подключения, после curlподключения эта опция больше не используется. Смотрите также --max-timeвариант.

Thushi
источник