Linux-kommandoer

Hvordan utføre flere curlforespørsler parallelt

Hvordan utføre flere curlforespørsler parallelt
Anta at du vil kjøre flere curlforespørsler samtidig, uansett årsak, si 10 forespørsler samtidig. Hvordan vil du gjøre det?? I denne opplæringen demonstrerer vi hvordan du kan utføre flere krøllete forespørsler samtidig.

Kjør parallelle forespørsler ved hjelp av kommandoen xargs

De xargs kommando er en kommando i Linux og UNIX-lignende operativsystemer som godtar eller tar argumenter fra standardinndata og deretter kjører en kommando for hvert argument. Enkelt sagt, kommandoen xargs kan ta utdataene fra en kommando og behandle den som et argument for en annen kommando.

For eksempel, i kommandoen nedenfor, tar xargs argumentene på venstre side og oppretter kataloger ved hjelp av argumentnavnene.

$ ekko 'Afrika Asia Europa Amerika' | xargs mkdir

Xargs-kommandoen kan også brukes til å kjøre flere forespørsler samtidig. Hvis du sjekker manpages, finner du en seksjon som gir deg kommandolinjeargumentene som angitt nedenfor.

Ved hjelp av xargs vil vi prøve å beordre utførelsen av flere curlforespørsler samtidig.

Linux curl-kommandoen er et kommandolinjeprogram som brukes til filoverføring. Det gir støtte for et utall protokoller som HTTP, HTTPS, FTP, FTPS, SCP, TFTP og så mange flere.

Anta at du vil hente HTTP-overskriftene til et nettsted ved hjelp av curl-kommandoen. For å gjøre dette må du påkalle curl-kommandoen med -I-flagget etterfulgt av URL-en som vist.

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

Nå har du nettopp sendt en enkelt krølleforespørsel. Anta at du vil utføre 5 parallelle forespørsler; hvordan vil du gjøre dette? Løsningen på dette er å bruke xargs-kommandoen som vist sammen med curl-kommandoen.

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

Flagget -P angir antall forespørsler parallelt. Seksjonen <(printf '%s\n' 1… 10) skriver ut tallene 1 - 10 og får curl-kommandoen til å kjøre 10 ganger med 5 forespørsler som kjører parallelt.

I tillegg kan du kjøre kommandoen nedenfor for å oppnå samme resultat. Som med forrige eksempel, utfører kommandoen nedenfor krøllkommandoen 10 ganger med 5 forespørsler parallelt.

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

La oss ta et annet eksempel. Anta at du vil laste ned 3 filer samtidig ved hjelp av curl-kommandoen. Det første trinnet vil være å lagre URL-ene til filene fra å lastes ned på en tekstfil. Her har vi en nedlastning av tekstfiler.txt med følgende nettadresser.

For å laste ned filene samtidig, kjør følgende kommando:

$ xargs -P 5 -n 1 krøll -O < download.txt

Kommandoen krøller hver linje i tekstfilen 5 ganger parallelt. De -n 1 flagg sørger for at curl-kommandoen leser en linje for hver utføring av curl-kommandoen.

Og slik utfører du flere curlforespørsler parallelt.

Vulkan for Linux-brukere
Med hver nye generasjon grafikkort ser vi spillutviklere skyve grensene for grafisk troskap og komme et skritt nærmere fotorealisme. Men til tross for...
OpenTTD vs Simutrans
Å lage din egen transportsimulering kan være morsom, avslappende og ekstremt fristende. Derfor må du sørge for at du prøver så mange spill som mulig f...
OpenTTD Tutorial
OpenTTD er et av de mest populære forretningssimuleringsspillene der ute. I dette spillet må du lage en fantastisk transportvirksomhet. Du begynner im...