Linux-kommandon

Hur man utför flera curlförfrågningar parallellt

Hur man utför flera curlförfrågningar parallellt
Antag att du vill köra flera curlförfrågningar samtidigt av vilken anledning som helst, säg 10 förfrågningar samtidigt. Hur skulle du göra det?? I den här handledningen visar vi hur du kan utföra flera lockiga förfrågningar samtidigt.

Kör parallella förfrågningar med hjälp av kommandot xargs

De xargs kommando är ett kommando i Linux och UNIX-liknande operativsystem som accepterar eller tar argument från standardinmatning och kör sedan ett kommando för varje argument. Enkelt uttryckt kan kommandot xargs ta utdata från ett kommando och bearbeta det som ett argument för ett annat kommando.

Till exempel, i kommandot nedan tar xargs argumenten till vänster och skapar kataloger med hjälp av argumentnamnen.

$ eko 'Afrika Asien Europa Amerika' | xargs mkdir

Kommandot xargs kan också användas för att köra flera förfrågningar samtidigt. Om du kontrollerar manpages hittar du ett avsnitt som ger dig kommandoradsargumenten som anges nedan.

Med hjälp av xargs försöker vi beordra körningen av flera curl-förfrågningar samtidigt.

Linux curl-kommandot är ett kommandoradsverktyg som används för filöverföring. Det ger stöd för en myriad av protokoll som HTTP, HTTPS, FTP, FTPS, SCP, TFTP och så många fler.

Antag att du vill hämta HTTP-rubrikerna på en webbplats med kommandot curl. För att göra detta måste du anropa curl-kommandot med -I-flaggan följt av webbadressen som visas.

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

Nu har du precis skickat en enda curlbegäran. Antag att du vill utföra fem parallella förfrågningar; hur skulle du göra det här?? Lösningen på detta är att använda kommandot xargs som visas tillsammans med curl-kommandot.

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

Flaggan -P anger antalet förfrågningar parallellt. Sektionen <(printf '%s\n' 1… 10) skriver ut siffrorna 1 - 10 och får curl-kommandot att köras 10 gånger med 5 förfrågningar som körs parallellt.

Dessutom kan du köra kommandot nedan för att uppnå samma resultat. Som med föregående exempel kör kommandot nedan curl-kommandot 10 gånger med 5 förfrågningar parallellt.

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

Låt oss ta ett annat exempel. Antag att du vill ladda ner 3 filer samtidigt med curl-kommandot. Det första steget blir att spara URL: erna för filerna från att laddas ner i en textfil. Här har vi en nedladdning av textfiler.txt med följande webbadresser.

För att ladda ner filerna samtidigt, kör följande kommando:

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

Kommandot krullar varje rad i textfilen 5 gånger parallellt. De -n 1 flagg säkerställer att curl-kommandot läser en rad för varje körning av curl-kommandot.

Och så kör du flera curlförfrågningar parallellt.

SuperTuxKart för Linux
SuperTuxKart är en fantastisk titel som är utformad för att ge dig Mario Kart-upplevelsen gratis på ditt Linux-system. Det är ganska utmanande och rol...
Battle for Wesnoth Tutorial
Slaget om Wesnoth är ett av de mest populära open source-strategispel som du kan spela just nu. Det här spelet har inte bara utvecklats under mycket l...
0 A.D. Handledning
Av de många strategispelen där ute, 0 A.D. lyckas framstå som en omfattande titel och ett mycket djupt, taktiskt spel trots att det är öppen källkod. ...