web-dev-qa-db-fra.com

Comment exécuter plusieurs requêtes curl, traitées séquentiellement?

En supposant que je sois une grande recrue Unix, - Je lance une requête curl via Cron toutes les 15 minutes. - Curl est essentiellement utilisé pour charger une page Web (php) qui, avec certains arguments, agit comme un script tel que:

curl http://mysite.com/?update_=1

Ce que je voudrais réaliser est d'exécuter un autre "script" en utilisant cette technique, chaque fois que l'autre script est exécuté, avant que l'autre script ne soit exécuté.

J'ai lu que curl accepte plusieurs URL dans une commande, mais je ne sais pas si cela traiterait les commandes de manière séquentielle ou "en parallèle".

12
Riccardo

Il est fort probable qu'il les traiterait de manière séquentielle (pourquoi ne pas simplement le tester). Mais vous pouvez aussi faire ceci:

1) créez un fichier nommé curlrequests.sh 2) placez-le dans un fichier comme suit:

curl http://mysite.com/?update_=1
curl http://mysite.com/?update_=3
curl http://mysite.com/?update_=234
curl http://mysite.com/?update_=65

3) enregistrer le fichier et le rendre exécutable avec chmod:

chmod +x curlrequests.sh

4) lancez votre fichier:

./curlrequests.sh

ou

/path/to/file/curlrequests.sh

En remarque, vous pouvez chaîner les requêtes avec &&, comme ceci:

curl http://mysite.com/?update_=1 && curl http://mysite.com/?update_=2 && curl http://mysite.com/?update_=3

Et exécutez en parallèle en utilisant &:

curl http://mysite.com/?update_=1 & curl http://mysite.com/?update_=2 & curl http://mysite.com/?update_=3
29
Timothy Baldridge

Ecrivez un script avec deux requêtes curl dans l’ordre désiré et lancez le par cron, comme

#!/bin/bash
curl http://mysite.com/?update_=1
curl http://mysite.com/?the_other_thing
2
mbq

Je pense que cela utilise plus de capacités natives

//printing the links to a file
$ echo "https://stackoverflow.com/questions/3110444/
https://stackoverflow.com/questions/8445445/
https://stackoverflow.com/questions/4875446/" > links_file.txt


$ xargs curl < links_file.txt

Prendre plaisir!

0
user10089632