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.