Предположим, вы хотите запустить несколько запросов curl одновременно по какой-либо причине, скажем, 10 запросов одновременно.
Как бы вы это сделали?
В этом руководстве мы продемонстрируем, как можно одновременно выполнять несколько curl запросов.
Выполнение параллельных запросов с помощью команды xargs
Команда xargs – это команда в Linux и UNIX-подобных операционных системах, которая принимает аргументы из stdin, а затем запускает команду для каждого аргумента.
Проще говоря, команда xargs может принимать выходные данные команды и обрабатывать их как аргумент другой команды.
Например, в приведенной ниже команде xargs принимает аргументы с левой стороны и создает каталоги, используя имена аргументов.
echo 'Raz Dwa Tri 4etyre' | xargs mkdir
Используя 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 параллельно.
а сколько максимум-то можно запустить, 1000 10005000 ? ?? ?