112 votes

Commande Curl pour répéter une demande d'URL

Quelle est la syntaxe d'une commande linux qui frappe une URL de manière répétée, un nombre x de fois. Je n'ai pas besoin de faire quoi que ce soit avec les données, j'ai juste besoin de reproduire l'action de rafraîchir 20 fois dans un navigateur.

164voto

alexm Points 61

Vous pouvez utiliser la substitution de séquence d'URL avec une chaîne de requête fictive (si vous voulez utiliser CURL et économiser quelques frappes) :

curl http://www.myurl.com/?[1-20]

Si vous avez d'autres chaînes de requête dans votre URL, affectez la séquence à une variable à jeter :

curl http://www.myurl.com/?myVar=111&fakeVar=[1-20]

Consultez la section URL de la page de manuel : https://curl.haxx.se/docs/manpage.html

104voto

matt b Points 73770
for i in `seq 1 20`; do curl http://url; done

Ou si vous voulez récupérer des informations sur le timing, utilisez ab :

ab -n 20 http://url/

91voto

Avichal Badaya Points 958

Vous pourriez être intéressé par Banc Apache qui est essentiellement utilisé pour effectuer des tests de charge simples.

exemple :

ab -n 500 -c 20 http://www.example.com/

n = nombre total de demandes, c = nombre de demandes concurrentes

8voto

Vous pouvez utiliser toutes les constructions de boucles de bash comme FOR avec une compatibilité avec Linux et Mac.

https://tiswww.case.edu/php/chet/bash/bashref.html#Looping-Constructs

Dans votre cas spécifique, vous pouvez définir N itérations, avec N est un nombre définissant combien de curl les exécutions que vous voulez.

for n in {1..N}; do curl <arguments>; done

ex :

for n in {1..20}; do curl -d @notification.json -H 'Content-Type: application/json' localhost:3000/dispatcher/notify; done

5voto

Si vous voulez ajouter un intervalle avant d'exécuter le cron la fois suivante, vous pouvez ajouter un sleep

pour i dans {1..100} ; do echo $i && curl " http://URL " >> /tmp/output.log && sleep 120 ; done

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X