„Linux“ komandos

Kaip lygiagrečiai vykdyti kelias garbanos užklausas

Kaip lygiagrečiai vykdyti kelias garbanos užklausas
Tarkime, kad norite dėl kelių priežasčių vienu metu vykdyti kelias garbanos užklausas, sakykite 10 užklausų tuo pačiu metu. Kaip elgtumėtės? Šioje pamokoje parodome, kaip vienu metu galite vykdyti kelias garbanotas užklausas.

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.txt

Komanda 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.

Geriausios „Linux“ skirtos „Gamepad“ žemėlapių sudarymo programos
Jei jums patinka žaisti žaidimus „Linux“ su žaidimų pultu, o ne įprasta klaviatūra ir pelės įvesties sistema, yra keletas jums naudingų programų. Daug...
Naudingi įrankiai „Linux“ žaidėjams
Jei jums patinka žaisti žaidimus „Linux“ sistemoje, yra tikimybė, kad galbūt naudojote tokias programas ir įrankius kaip „Wine“, „Lutris“ ir „OBS Stud...
„HD Remastered“ žaidimai, skirti „Linux“, kurie niekada anksčiau nebuvo išleisti „Linux“
Daugelis žaidimų kūrėjų ir leidėjų siūlo senų žaidimų HD remasterį, kad prailgintų franšizės laiką. Prašome gerbėjų, prašančių suderinamumo su šiuolai...