Comandos Linux

Como executar várias solicitações curl em paralelo

Como executar várias solicitações curl em paralelo
Suponha que você queira executar várias solicitações curl simultaneamente por qualquer motivo, digamos 10 solicitações ao mesmo tempo. Como você faria sobre isso? Neste tutorial, demonstramos como você pode executar várias solicitações de curvas simultaneamente.

Execute solicitações paralelas usando o comando xargs

O xargs comando é um comando em sistemas operacionais semelhantes ao Linux e UNIX que aceita ou obtém argumentos da entrada padrão e, em seguida, executa um comando para cada argumento. Simplificando, o comando xargs pode pegar a saída de um comando e processá-la como um argumento de um comando diferente.

Por exemplo, no comando abaixo, xargs pega os argumentos do lado esquerdo e cria diretórios usando os nomes dos argumentos.

$ echo 'África Ásia Europa América' | xargs mkdir

O comando xargs também pode ser usado para executar várias solicitações simultaneamente. Se você verificar as páginas de manual, você encontrará uma seção que fornece os argumentos da linha de comando conforme indicado abaixo.

Usando xargs, tentaremos comandar a execução de várias solicitações curl ao mesmo tempo.

O comando Linux curl é um utilitário de linha de comando usado para transferência de arquivos. Ele fornece suporte para uma infinidade de protocolos, como HTTP, HTTPS, FTP, FTPS, SCP, TFTP e muitos mais.

Suponha que você deseja obter os cabeçalhos HTTP de um site usando o comando curl. Para fazer isso, você precisaria invocar o comando curl com o sinalizador -I seguido pelo URL conforme mostrado.

$ curl -I "https: // linuxways.internet"

Agora, você acabou de enviar uma única solicitação curl. Suponha que você queira executar 5 solicitações paralelas; como você faria sobre isso? A solução para isso é usar o comando xargs como mostrado ao lado do comando curl.

$ xargs -I% -P 5 curl -I "https: // linuxways.internet" < <(printf '%s\n' 1… 10)

O sinalizador -P denota o número de solicitações em paralelo. A seção <(printf '%s\n' 1… 10) imprime os números de 1 a 10 e faz com que o comando curl seja executado 10 vezes com 5 solicitações sendo executadas em paralelo.

Além disso, você pode executar o comando abaixo para obter o mesmo resultado. Como no exemplo anterior, o comando abaixo executa o comando curl 10 vezes com 5 solicitações em paralelo.

$ seq 1 10 | xargs -n1 -P 5 curl -I "https: // linuxways.internet"

Vamos dar outro exemplo. Suponha que você queira baixar 3 arquivos simultaneamente usando o comando curl. O primeiro passo será salvar os URLs dos arquivos de serem baixados em um arquivo de texto. Aqui, temos um download de arquivo de texto.txt com os seguintes URLs.

Para baixar os arquivos simultaneamente, execute o seguinte comando:

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

O comando curva todas as linhas do arquivo de texto 5 vezes em paralelo. O -n 1 flag garante que o comando curl leia uma linha para cada execução do comando curl.

E é assim que você executa várias solicitações curl em paralelo.

Como alterar os botões esquerdo e direito do mouse no PC com Windows 10
É normal que todos os dispositivos de mouse de computador sejam ergonomicamente projetados para usuários destros. Mas existem dispositivos de mouse di...
Emular cliques do mouse passando o mouse usando o mouse sem cliques no Windows 10
Usar um mouse ou teclado na postura errada de uso excessivo pode resultar em muitos problemas de saúde, incluindo tensão, síndrome do túnel do carpo e...
Adicione gestos do mouse ao Windows 10 usando essas ferramentas gratuitas
Nos últimos anos, os computadores e sistemas operacionais evoluíram muito. Houve um tempo em que os usuários tinham que usar comandos para navegar pel...