Paleiskite lygiagrečias užklausas naudodami komandą xargs
The xargs komanda yra komanda Linux ir UNIX tipo operacinėse sistemose, kuri priima arba perima argumentus iš standartinio įvesties, tada paleidžia komandą kiekvienam argumentui. Paprasčiau tariant, komanda xargs gali priimti komandos išvestį ir apdoroti ją kaip kitos komandos argumentą.
Pavyzdžiui, žemiau esančioje komandoje xargs paima argumentus kairėje pusėje ir sukuria katalogus naudodamas argumentų pavadinimus.
$ aidas 'Afrika Azija Europa Amerika' | xargs mkdir
„Xargs“ komanda taip pat gali būti naudojama keliems prašymams vienu metu vykdyti. Jei patikrinsite puslapius, rasite skyrių, kuriame pateikiami komandinės eilutės argumentai, kaip nurodyta toliau.
Naudodami „xargs“, mes bandysime komandą vykdyti kelias garbanos užklausas vienu metu.
„Linux curl“ komanda yra komandinės eilutės įrankis, naudojamas failams perduoti. Tai palaiko daugybę protokolų, tokių kaip HTTP, HTTPS, FTP, FTPS, SCP, TFTP ir dar daug kitų.
Tarkime, kad norite gauti svetainės HTTP antraštes naudodami komandą „curl“. Norėdami tai padaryti, turėsite iškviesti komandą curl su vėliava -I, po kurios nurodomas URL, kaip parodyta.
$ curl -I "https: // linijos.tinklas "
Dabar ką tik išsiuntėte vieną garbanos užklausą. Tarkime, kad norite vykdyti 5 lygiagrečias užklausas; kaip jūs tai darytumėte? Išeitis yra naudoti komandą xargs, kaip parodyta kartu su curl komanda.
$ xargs -I% -P 5 garbanos -I "https: // linijiniai keliai.tinklas " < <(printf '%s\n' 1… 10)-P vėliava žymi lygiagrečių užklausų skaičių. Skyrius <(printf '%s\n' 1… 10) išspausdina skaičius 1–10 ir priverčia curl komandą vykdyti 10 kartų, kartu vykdant 5 užklausas.
Be to, galite paleisti žemiau esančią komandą, kad pasiektumėte tą patį rezultatą. Kaip ir ankstesniame pavyzdyje, žemiau esančia komanda vykdoma garbanojimo komanda 10 kartų su 5 užklausomis lygiagrečiai.
1 seq $ 10 | xargs -n1 -P 5 garbanos -I "https: // linijiniai keliai.tinklas "Paimkime kitą pavyzdį. Tarkime, kad vienu metu norite atsisiųsti 3 failus naudodami komandą „curl“. Pirmasis žingsnis bus išsaugoti failų URL, kurie nėra atsisiunčiami į tekstinį failą. Čia mes turime atsisiųsti teksto failą.txt su šiais URL.
Norėdami vienu metu atsisiųsti failus, vykdykite šią komandą:
$ xargs -P 5 -n 1 garbanos -O < download.txtKomanda kiekvieną teksto failo eilutę garbanoja 5 kartus lygiagrečiai. The -n 1 vėliava užtikrina, kad curl komanda nuskaitys po vieną eilutę kiekvienam curl komandos vykdymui.
Taip jūs lygiagrečiai vykdote kelias garbanojimo užklausas.