Pokrenite paralelne zahtjeve pomoću naredbe xargs
The xargs naredba je naredba u operacijskim sustavima sličnim Linuxu i UNIX-u koja prihvaća ili uzima argumente iz standardnog unosa, a zatim izvodi naredbu za svaki argument. Jednostavno rečeno, naredba xargs može uzeti izlaz naredbe i obraditi je kao argument druge naredbe.
Na primjer, u naredbi dolje xargs uzima argumente s lijeve strane i kreira direktorije koristeći imena argumenata.
$ echo 'Afrika Azija Europa Amerika' | xargs mkdir
Naredba xargs također se može koristiti za istodobno pokretanje više zahtjeva. Ako provjerite stranice s uputama, pronaći ćete odjeljak koji vam daje argumente naredbenog retka kako je navedeno u nastavku.
Koristeći xargs, pokušat ćemo narediti izvršavanje više zahtjeva za curl istovremeno.
Naredba Linux curl uslužni je program naredbenog retka koji se koristi za prijenos datoteka. Pruža podršku za bezbroj protokola kao što su HTTP, HTTPS, FTP, FTPS, SCP, TFTP i još mnogo više.
Pretpostavimo da želite dobiti HTTP zaglavlja web mjesta pomoću naredbe curl. Da biste to učinili, morat ćete pozvati naredbu curl s oznakom -I praćenom URL-om kao što je prikazano.
$ curl -I "https: // linuxways.neto"
Sad ste upravo poslali jedan zahtjev za uvijanje. Pretpostavimo da želite izvršiti 5 paralelnih zahtjeva; kako biste to učinili? Rješenje za to je upotreba xargs naredbe kako je prikazano uz naredbu curl.
$ xargs -I% -P 5 curl -I "https: // linuxways.neto" < <(printf '%s\n' 1… 10)Oznaka -P označava paralelno broj zahtjeva. Odjeljak <(printf '%s\n' 1… 10) ispisuje brojeve 1 - 10 i uzrokuje da se naredba curl izvrši 10 puta s 5 paralelno pokrenutih zahtjeva.
Uz to, možete pokrenuti donju naredbu da biste postigli isti rezultat. Kao i u prethodnom primjeru, naredba u nastavku izvršava naredbu curl 10 puta s 5 paralelnih zahtjeva.
$ seq 1 10 | xargs -n1 -P 5 curl -I "https: // linuxways.neto"Uzmimo još jedan primjer. Pretpostavimo da istovremeno želite preuzeti 3 datoteke pomoću naredbe curl. Prvi korak bit će spremanje URL-ova datoteka od preuzimanja u tekstualnu datoteku. Ovdje imamo preuzimanje tekstualne datoteke.txt sa sljedećim URL-ovima.
Da biste istovremeno preuzeli datoteke, pokrenite sljedeću naredbu:
$ xargs -P 5 -n 1 uvojak -O < download.txtNaredba 5 puta paralelno uvija svaki redak u tekstualnoj datoteci. The -n 1 flag osigurava da naredba curl čita jedan redak za svako izvršavanje naredbe curl.
I tako paralelno izvršavate više zahtjeva za curl.