Käivitage paralleelsed taotlused käsuga xargs
The xargs käsk on Linuxi ja UNIX-i sarnaste operatsioonisüsteemide käsk, mis aktsepteerib või võtab argumendid standardsisendist ja käivitab seejärel käsu iga argumendi jaoks. Lihtsamalt öeldes võib käsk xargs võtta käsu väljundi ja töödelda seda teise käsu argumendina.
Näiteks võtab xargs allpool olevas käsus vasakul küljel olevad argumendid ja loob argumentide nimede abil kataloogid.
$ kaja 'Aafrika Aasia Euroopa Ameerika' | xargs mkdir
Käsku xargs saab kasutada ka mitme päringu samaaegseks käitamiseks. Kui kontrollite käsulehti, leiate jaotise, mis annab teile käsurea argumendid, nagu allpool näidatud.
Kasutades xargs-i, proovime käsu käivitada korraga mitu lokitaotlust.
Linuxi curl-käsk on käsurea utiliit, mida kasutatakse failide edastamiseks. See toetab arvukaid protokolle nagu HTTP, HTTPS, FTP, FTPS, SCP, TFTP ja palju muud.
Oletame, et soovite käsu curl abil hankida veebisaidi HTTP-päised. Selleks peate kutsuma curl-käsu lipuga -I, millele järgneb URL, nagu näidatud.
$ curl -I "https: // liinid.võrk "
Saatsite just ühe lokitamise taotluse. Oletame, et soovite täita 5 paralleelset taotlust; kuidas sa sellega läheksid? Selle lahenduseks on kasutada käsku xargs, nagu on näidatud käsu curl kõrval.
$ xargs -I% -P 5 lokk -I "https: // liinid.võrk " < <(printf '%s\n' 1… 10)-P lipp tähistab paralleelselt taotluste arvu. Jaotis <(printf '%s\n' 1… 10) prindib välja numbrid 1 - 10 ja paneb curl-käsu käima 10 korda, paralleelselt töötades 5 taotlusega.
Lisaks võite sama tulemuse saavutamiseks käivitada alloleva käsu. Nagu eelmises näites, täidab allpool olev käsk curl-käsu 10 korda paralleelselt 5 taotlusega.
$ seq 1 10 | xargs -n1 -P 5 lokk -I "https: // liinid.võrk "Võtame veel ühe näite. Oletame, et soovite käsu curl abil korraga alla laadida 3 faili. Esimene samm on failide URL-ide allalaadimine tekstifaili. Siin on meil tekstifailide allalaadimine.txt järgmiste URL-idega.
Failide samaaegseks allalaadimiseks käivitage järgmine käsk:
$ xargs -P 5 -n 1 lokk -O < download.txtKäsk keerutab tekstifaili iga rida 5 korda paralleelselt. The -n 1 lipp tagab, et curl-käsk loeb curl-käsu iga täitmise kohta ühe rea.
Ja nii täidate mitu lokitamise taotlust paralleelselt.