Zaženite vzporedne zahteve z ukazom xargs
The xargs command je ukaz v operacijskih sistemih, podobnih Linuxu in UNIX-u, ki sprejema ali jemlje argumente iz standardnega vhoda in nato za vsak argument zažene ukaz. Preprosto povedano, ukaz xargs lahko sprejme izhod ukaza in ga obdela kot argument drugega ukaza.
Na primer, v spodnjem ukazu xargs vzame argumente na levi strani in ustvari imenike z imeni argumentov.
$ echo 'Afrika Azija Evropa Amerika' | xargs mkdir
Ukaz xargs lahko uporabite tudi za sočasno izvajanje več zahtev. Če preverite strani, boste našli razdelek z argumenti ukazne vrstice, kot je navedeno spodaj.
Z uporabo xargs bomo poskušali ukazati izvajanje več zahtev za curl hkrati.
Ukaz Linux curl je pripomoček ukazne vrstice, ki se uporablja za prenos datotek. Zagotavlja podporo za nešteto protokolov, kot so HTTP, HTTPS, FTP, FTPS, SCP, TFTP in toliko drugih.
Recimo, da želite z ukazom curl dobiti glave HTTP spletnega mesta. Če želite to narediti, morate poklicati ukaz curl z zastavico -I, ki ji sledi URL, kot je prikazano.
$ curl -I "https: // linuxways.mreža"
Zdaj ste pravkar poslali eno samo zahtevo za kodranje. Recimo, da želite izvršiti 5 vzporednih zahtev; kako bi se lotili tega? Rešitev tega je uporaba ukaza xargs, kot je prikazano poleg ukaza curl.
$ xargs -I% -P 5 curl -I "https: // linuxways.mreža" < <(printf '%s\n' 1… 10)Oznaka -P označuje število zahtev vzporedno. Odsek <(printf '%s\n' 1… 10) izpiše številke 1 - 10 in povzroči, da se ukaz curl zažene 10-krat, vzporedno pa se izvaja 5 zahtev.
Poleg tega lahko zaženete spodnji ukaz, da dosežete enak rezultat. Tako kot v prejšnjem primeru tudi spodnji ukaz izvrši ukaz curl 10-krat s 5 vzporednimi zahtevami.
$ seq 1 10 | xargs -n1 -P 5 curl -I "https: // linuxways.mreža"Vzemimo še en primer. Recimo, da želite hkrati prenesti 3 datoteke z ukazom curl. Prvi korak bo shranjevanje URL-jev datotek pred prenosom v besedilno datoteko. Tukaj imamo prenos besedilne datoteke.txt z naslednjimi URL-ji.
Če želite datoteke hkrati prenesti, zaženite naslednji ukaz:
$ xargs -P 5 -n 1 curl -O < download.txtUkaz petkrat vzporedno zavije vsako vrstico v besedilni datoteki. The -n 1 flag zagotavlja, da ukaz curl bere eno vrstico za vsako izvajanje ukaza curl.
In tako vzporedno izvajate več zahtev za curl.