Spúšťajte paralelné požiadavky pomocou príkazu xargs
The xargs príkaz je príkaz v operačných systémoch Linux a UNIX, ktorý prijíma alebo prijíma argumenty zo štandardného vstupu a potom spustí príkaz pre každý argument. Jednoducho povedané, príkaz xargs môže brať výstup príkazu a spracovať ho ako argument iného príkazu.
Napríklad v príkaze nižšie xargs vezme argumenty na ľavú stranu a vytvorí adresáre pomocou názvov argumentov.
$ echo 'Afrika Ázia Európa Amerika' xargs mkdir
Príkaz xargs je možné použiť aj na súčasné spustenie viacerých požiadaviek. Ak skontrolujete manpages, nájdete sekciu, ktorá obsahuje argumenty príkazového riadku, ako je uvedené nižšie.
Pomocou xargs sa pokúsime veliť vykonávaniu viacerých požiadaviek na zvlnenie súčasne.
Príkaz Linux curl je obslužný program príkazového riadku, ktorý sa používa na prenos súborov. Poskytuje podporu pre nespočetné množstvo protokolov, ako sú HTTP, HTTPS, FTP, FTPS, SCP, TFTP a mnoho ďalších.
Predpokladajme, že chcete získať hlavičky HTTP webu pomocou príkazu curl. Aby ste to dosiahli, budete musieť vyvolať príkaz curl s príznakom -I nasledovaným URL, ako je to znázornené.
$ curl -I "https: // linuxways.sieť "
Teraz ste práve odoslali jednu žiadosť o zvlnenie. Predpokladajme, že chcete vykonať 5 paralelných požiadaviek; ako by ste v tomto postupovali? Riešením je použitie príkazu xargs, ktorý je zobrazený vedľa príkazu curl.
$ xargs -I% -P 5 curl -I "https: // linuxways.sieť " < <(printf '%s\n' 1… 10)Príznak -P označuje počet paralelných požiadaviek. Sekcia <(printf '%s\n' 1… 10) vypíše čísla 1 - 10 a spôsobí, že príkaz curl sa spustí 10-krát s 5 paralelne spustenými požiadavkami.
Ďalej môžete spustiť príkaz nižšie, aby ste dosiahli rovnaký výsledok. Rovnako ako v predchádzajúcom príklade, nižšie uvedený príkaz vykoná príkaz curl 10-krát s 5 paralelnými požiadavkami.
$ seq 1 10 | xargs -n1 -P 5 curl -I "https: // linuxways.sieť "Zoberme si ďalší príklad. Predpokladajme, že chcete stiahnuť 3 súbory súčasne pomocou príkazu curl. Prvým krokom bude uloženie adries URL súborov pred stiahnutím do textového súboru. Tu máme stiahnutie textového súboru.txt s nasledujúcimi adresami URL.
Ak chcete súbory sťahovať súčasne, spustite nasledujúci príkaz:
$ xargs -P 5 -n 1 zvlnenie -O < download.txtPríkaz zvlní každý riadok v textovom súbore päťkrát paralelne. The -n 1 príznak zaisťuje, že príkaz curl načíta jeden riadok pre každé vykonanie príkazu curl.
A tak súčasne vykonávate viac požiadaviek na zvlnenie.