Come eseguire più richieste di riccioli in parallelo

Come eseguire più richieste di riccioli in parallelo
Supponiamo di voler eseguire più richieste di curl contemporaneamente per qualsiasi motivo, diciamo 10 richieste contemporaneamente. Come lo faresti? In questo tutorial, dimostriamo come puoi eseguire più richieste ricci contemporaneamente.

Esegui richieste parallele utilizzando il comando Xargs

IL Xargs Il comando è un comando in sistemi operativi Linux e UNIX che accetta o prende argomenti dall'input standard e quindi esegue un comando per ogni argomento. In poche parole, il comando Xargs può prendere l'output di un comando ed elaborarlo come argomento di un comando diverso.

Ad esempio, nel comando seguente, Xargs prende gli argomenti sul lato sinistro e crea directory usando i nomi degli argomenti.

$ echo "Africa Asia Europe America" ​​| Xargs Mkdir

Il comando Xargs può anche essere utilizzato per eseguire più richieste contemporaneamente. Se controlli i papage, troverai una sezione che ti dia gli argomenti della riga di comando come indicato di seguito.

Usando Xargs, tenteremo di comandare contemporaneamente l'esecuzione di più richieste di ricci.

Il comando Linux Curl è un'utilità della riga di comando che viene utilizzata per il trasferimento di file. Fornisce supporto per una miriade di protocolli come HTTP, HTTPS, FTP, FTPS, SCP, TFTP e tanti altri.

Supponiamo di voler ottenere le intestazioni HTTP di un sito Web utilizzando il comando Curl. Per fare questo, dovresti invocare il comando Curl con il flag -i seguito dall'URL come mostrato.

$ CURL -I "https: // linuxways.netto"

Ora hai appena inviato una singola richiesta di riccio. Supponiamo di voler eseguire 5 richieste parallele; Come faresti a questo? La soluzione a questo è utilizzare il comando Xargs come mostrato accanto al comando Curl.

$ xargs -i % -p 5 curl -i "https: // linuxways.netto" < <(printf '%s\n' 1… 10)

Il flag -p indica il numero di richieste in parallelo. La sezione <(printf '%s\n' 1… 10) Stampa i numeri 1 - 10 e fa funzionare il comando Curl 10 volte con 5 richieste in esecuzione in parallelo.

Inoltre, è possibile eseguire il comando di seguito per ottenere lo stesso risultato. Come con l'esempio precedente, il comando di seguito esegue il comando Curl 10 volte con 5 richieste in parallelo.

$ seq 1 10 | Xargs -n1 -p 5 curl -i "https: // linuxways.netto"

Facciamo un altro esempio. Supponiamo di voler scaricare 3 file contemporaneamente usando il comando Curl. Il primo passo sarà quello di salvare gli URL dei file da scaricare su un file di testo. Qui, abbiamo un download di file di testo.txt con i seguenti URL.

Per scaricare i file contemporaneamente, eseguire il comando seguente:

$ xargs -p 5 -n 1 curl -o < download.txt

Il comando arriccia ogni riga nel file di testo 5 volte in parallelo. IL -N 1 Il flag garantisce che il comando Curl legga una riga per ogni esecuzione del comando Curl.

Ed è così che esegui più richieste di curl in parallelo.