Hvordan du utfører flere krøllforespørsler parallelt

Hvordan du utfører flere krøllforespørsler parallelt
Anta at du vil kjøre flere krøllforespørsler samtidig av en eller annen grunn, 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 XArgs -kommandoen

De xargs Kommando er en kommando i Linux og UNIX-lignende operativsystemer som godtar eller tar argumenter fra standardinngang og deretter kjører en kommando for hvert argument. Enkelt sagt kan Xargs -kommandoen ta utgangen 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 å bruke argumentnavnene.

$ ECHO 'Africa Asia Europe America' | Xargs Mkdir

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

Ved hjelp av Xargs vil vi prøve å kommandere utførelsen av flere krøllforespørsler samtidig.

Linux Curl-kommandoen er et kommandolinjeverktøy 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 få 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 nettadressen som vist.

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

Nå har du nettopp sendt en enkelt krøllforespø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 ved siden av Curl -kommandoen.

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

-P -flagget betegner 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 det forrige eksemplet, utfører kommandoen nedenfor Curl -kommandoen 10 ganger med 5 forespørsler parallelt.

$ SEQ 1 10 | xargs -n1 -p 5 krøll -i "https: // linuxways.nett"

La oss ta et annet eksempel. Anta at du vil laste ned 3 filer samtidig ved å bruke Curl -kommandoen. Det første trinnet vil være å lagre nettadressene til filene fra å bli lastet ned på en tekstfil. Her har vi en nedlasting av tekstfil.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 Flagget sikrer at Curl -kommandoen leser en linje for hver utførelse av Curl -kommandoen.

Og det er slik du utfører flere krøllforespørsler parallelt.