🖧 Как выполнять несколько запросов curl параллельно

Мануал

Предположим, вы хотите запустить несколько запросов curl одновременно по какой-либо причине, скажем, 10 запросов одновременно.

Как бы вы это сделали?

В этом руководстве мы продемонстрируем, как можно одновременно выполнять несколько curl запросов.

Выполнение параллельных запросов с помощью команды xargs

Команда xargs – это команда в Linux и UNIX-подобных операционных системах, которая принимает аргументы из stdin, а затем запускает команду для каждого аргумента.

Проще говоря, команда xargs может принимать выходные данные команды и обрабатывать их как аргумент другой команды.

Например, в приведенной ниже команде xargs принимает аргументы с левой стороны и создает каталоги, используя имена аргументов.

echo 'Raz Dwa Tri 4etyre' | xargs mkdir

Команду xargs также можно использовать для одновременного выполнения нескольких запросов.
Если вы проверите страницы руководства, вы найдете раздел, который дает вам аргументы командной строки, как указано ниже.

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

Команда Linux curl – это утилита командной строки, которая используется для передачи файлов.

Она обеспечивает поддержку множества протоколов, таких как HTTP, HTTPS, FTP, FTPS, SCP, TFTP и многих других.

Предположим, вы хотите получить HTTP-заголовки веб-сайта с помощью команды curl.

Для этого вам нужно будет вызвать команду curl с флагом -I, за которым следует URL-адрес, как показано далее на примере.

$ curl -I "https://itsecforu.ru"

Теперь вы только что отправили один запрос curl.

Предположим, вы хотите выполнить 5 параллельных запросов?

Чтобы решить эту проблему, используйте команду xargs, как показано далее с командой curl.

xargs -I % -P 5 curl -I "https://itsecforu.ru" < <(printf '%s\n' {1..10})

Кроме того, вы можете запустить команду показанную ниже, чтобы добиться того же результата.

Как и в предыдущем примере, приведенная ниже команда выполняет команду curl 10 раз с 5 параллельными запросами.

seq 1 10 | xargs -n1 -P 5 curl -I "https://itsecforu.ru"
Рассмотрим другой пример.

Предположим, вы хотите загрузить 3 файла одновременно с помощью команды curl.

Первым шагом будет сохранение URL-адресов в текстовый файл.

В данном примере у нас есть текстовый файл download.txt со следующими URL-адресами.

Чтобы скачать эти файлы одновременно, выполните следующую команду:

xargs -P 5 -n 1 curl -O < download.txt

Команда курлит каждую строку в текстовом файле 5 раз параллельно.

Флаг -n 1 гарантирует, что команда curl считывает одну строку при каждом выполнении команды curl.

Заключение

В данной статье мы рассмотрели на примерах, каким образом можно выполнять несколько запросов curl параллельно.

Добавить комментарий