Commandes Linux

Comment exécuter plusieurs requêtes curl en parallèle

Comment exécuter plusieurs requêtes curl en parallèle
Supposons que vous souhaitiez exécuter plusieurs requêtes curl simultanément pour une raison quelconque, disons 10 requêtes en même temps. Comment feriez-vous? Dans ce tutoriel, nous montrons comment vous pouvez exécuter plusieurs requêtes curly simultanément.

Exécuter des requêtes parallèles à l'aide de la commande xargs

le xargs la commande est une commande dans les systèmes d'exploitation de type Linux et UNIX qui accepte ou prend des arguments à partir d'une entrée standard, puis exécute une commande pour chaque argument. En termes simples, la commande xargs peut prendre la sortie d'une commande et la traiter comme argument d'une commande différente.

Par exemple, dans la commande ci-dessous, xargs prend les arguments sur le côté gauche et crée des répertoires en utilisant les noms d'arguments.

$ echo 'Afrique Asie Europe Amérique' | xargs mkdir

La commande xargs peut également être utilisée pour exécuter plusieurs requêtes simultanément. Si vous consultez les pages de manuel, vous trouverez une section qui vous donne les arguments de ligne de commande comme indiqué ci-dessous.

En utilisant xargs, nous essaierons de commander l'exécution de plusieurs requêtes curl en même temps.

La commande Linux curl est un utilitaire de ligne de commande utilisé pour le transfert de fichiers. Il prend en charge une myriade de protocoles tels que HTTP, HTTPS, FTP, FTPS, SCP, TFTP et bien d'autres.

Supposons que vous souhaitiez obtenir les en-têtes HTTP d'un site Web à l'aide de la commande curl. Pour ce faire, vous devez appeler la commande curl avec l'indicateur -I suivi de l'URL comme indiqué.

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

Maintenant, vous venez d'envoyer une seule demande curl. Supposons que vous vouliez exécuter 5 requêtes parallèles ; comment feriez-vous cela? La solution consiste à utiliser la commande xargs comme indiqué à côté de la commande curl.

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

L'indicateur -P indique le nombre de requêtes en parallèle. La section <(printf '%s\n' 1… 10) imprime les nombres 1 à 10 et fait exécuter la commande curl 10 fois avec 5 requêtes exécutées en parallèle.

De plus, vous pouvez exécuter la commande ci-dessous pour obtenir le même résultat. Comme pour l'exemple précédent, la commande ci-dessous exécute la commande curl 10 fois avec 5 requêtes en parallèle.

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

Prenons un autre exemple. Supposons que vous vouliez télécharger 3 fichiers simultanément à l'aide de la commande curl. La première étape consistera à enregistrer les URL des fichiers en cours de téléchargement sur un fichier texte. Ici, nous avons un fichier texte à télécharger.txt avec les URL suivantes.

Pour télécharger les fichiers simultanément, exécutez la commande suivante :

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

La commande boucle chaque ligne du fichier texte 5 fois en parallèle. le -n 1 flag garantit que la commande curl lit une ligne pour chaque exécution de la commande curl.

Et c'est ainsi que vous exécutez plusieurs requêtes curl en parallèle.

Comment utiliser AutoKey pour automatiser les jeux Linux
AutoKey est un utilitaire d'automatisation de bureau pour Linux et X11, programmé en Python 3, GTK et Qt. En utilisant ses fonctionnalités de script e...
Comment afficher le compteur FPS dans les jeux Linux
Les jeux Linux ont reçu une impulsion majeure lorsque Valve a annoncé la prise en charge de Linux pour le client Steam et leurs jeux en 2012. Depuis l...
Comment télécharger et jouer à Civilization VI de Sid Meier sur Linux
Présentation du jeu Civilization 6 est une version moderne du concept classique introduit dans la série de jeux Age of Empires. L'idée était assez sim...