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 procéderiez-vous? Dans ce didacticiel, nous montrons comment vous pouvez exécuter plusieurs requêtes curly simultanément.
Exécutez des requêtes parallèles à l’aide de la commande xargs
le xargs command est une commande dans les systèmes d’exploitation de type Linux et UNIX qui accepte ou prend des arguments de l’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 un 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’argument.
$ écho «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 tenterons de commander l’exécution de plusieurs requêtes curl en même temps.
Le Linux commande 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é.
$ boucle -JE « https://linuxways.net »
Maintenant, vous venez d’envoyer une seule demande de curl. Supposons que vous souhaitiez 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 -JE % -P 5 boucle -JE « https://linuxways.net » < <(printf ‘% s n’ {1..dix})
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 entraîne l’exécution de la commande curl 10 fois avec 5 requêtes exécutées en parallèle.
En outre, vous pouvez exécuter la commande ci-dessous pour obtenir le même résultat. Comme dans 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 dix | xargs -n1 -P 5 boucle -JE « https://linuxways.net »
Prenons un autre exemple. Supposons que vous souhaitiez télécharger 3 fichiers simultanément à l’aide de la commande curl. La première étape consistera à enregistrer les URL des fichiers du téléchargement sur un fichier texte. Ici, nous avons un fichier texte download.txt avec les URL suivantes.
Pour télécharger les fichiers simultanément, exécutez la commande suivante:
$ xargs -P 5 -n 1 boucle -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.
Voir aussi : Comment vérifier les journaux cron sous Linux