Linux-opdrachten

Meerdere curl-verzoeken parallel uitvoeren?

Meerdere curl-verzoeken parallel uitvoeren?
Stel dat u om welke reden dan ook meerdere curl-verzoeken tegelijkertijd wilt uitvoeren, bijvoorbeeld 10 verzoeken tegelijk. Hoe zou je het aanpakken?? In deze zelfstudie laten we zien hoe u meerdere curly-verzoeken tegelijkertijd kunt uitvoeren.

Voer parallelle verzoeken uit met de opdracht xargs

De xargs opdracht is een opdracht in Linux- en UNIX-achtige besturingssystemen die argumenten accepteert of accepteert van standaardinvoer en vervolgens een opdracht uitvoert voor elk argument. Simpel gezegd, de opdracht xargs kan de uitvoer van een opdracht nemen en deze verwerken als een argument van een andere opdracht.

In het onderstaande commando neemt xargs bijvoorbeeld de argumenten aan de linkerkant en maakt mappen aan met de argumentnamen.

$ echo 'Afrika Azië Europa Amerika' | xargs mkdir

De opdracht xargs kan ook worden gebruikt om meerdere verzoeken tegelijk uit te voeren. Als je de man-pagina's bekijkt, zul je een sectie vinden die je de opdrachtregelargumenten geeft, zoals hieronder aangegeven:.

Met behulp van xargs zullen we proberen om de uitvoering van meerdere curl-verzoeken tegelijkertijd te bevelen.

De Linux curl-opdracht is een opdrachtregelprogramma dat wordt gebruikt voor bestandsoverdracht. Het biedt ondersteuning voor een groot aantal protocollen zoals HTTP, HTTPS, FTP, FTPS, SCP, TFTP en nog veel meer.

Stel dat u de HTTP-headers van een website wilt ophalen met het curl-commando. Om dit te doen, moet u het curl-commando aanroepen met de vlag -I gevolgd door de URL zoals weergegeven.

$ curl -I "https://linuxways.netto"

Nu heb je zojuist een enkel krulverzoek verzonden. Stel dat u 5 parallelle verzoeken wilt uitvoeren; hoe zou je dit aanpakken?? De oplossing hiervoor is om het xargs-commando te gebruiken zoals weergegeven naast het curl-commando.

$ xargs -I % -P 5 curl -I "https://linuxways.netto" < <(printf '%s\n' 1… 10)

De vlag -P geeft het aantal parallelle verzoeken aan. Het deel <(printf '%s\n' 1… 10) drukt de nummers 1 - 10 af en zorgt ervoor dat het curl-commando 10 keer wordt uitgevoerd met 5 parallelle verzoeken.

Bovendien kunt u de onderstaande opdracht uitvoeren om hetzelfde resultaat te bereiken:. Net als bij het vorige voorbeeld, voert de onderstaande opdracht de curl-opdracht 10 keer uit met 5 parallelle verzoeken.

$ volgende 1 10 | xargs -n1 -P 5 curl -I "https://linuxways.netto"

Laten we nog een voorbeeld nemen. Stel dat u 3 bestanden tegelijk wilt downloaden met het curl-commando. De eerste stap is om de URL's van de bestanden op te slaan zodat ze niet kunnen worden gedownload in een tekstbestand. Hier hebben we een tekstbestand te downloaden.txt met de volgende URL's.

Voer de volgende opdracht uit om de bestanden tegelijkertijd te downloaden:

$ xargs -P 5 -n 1 krul -O < download.txt

De opdracht krult elke regel in het tekstbestand 5 keer parallel. De -n 1 flag zorgt ervoor dat het curl-commando één regel leest voor elke uitvoering van het curl-commando.

En zo voer je meerdere curl-verzoeken parallel uit.

Strijd om Wesnoth 1.13.6 Ontwikkeling vrijgegeven
Strijd om Wesnoth 1.13.6 die vorige maand werd uitgebracht, is de zesde ontwikkelingsrelease in de 1.13.x-serie en het levert een aantal verbeteringen...
Hoe League Of Legends op Ubuntu 14 te installeren.04
Als je fan bent van League of Legends, dan is dit een kans voor jou om League of Legends te testen. Merk op dat LOL wordt ondersteund op PlayOnLinux a...
Installeer de nieuwste OpenRA Strategy Game op Ubuntu Linux
OpenRA is een Libre/Free Real Time Strategy-game-engine die de vroege Westwood-games nabootst, zoals de klassieke Command & Conquer: Red Alert. Gedist...