Как запустить несколько запросов curl, обрабатываемых последовательно? - PullRequest
12 голосов
/ 24 июня 2010

Предполагая, что я большой новичок в Unix, - я запускаю запрос curl через cron каждые 15 минут.- Curl в основном используется для загрузки веб-страницы (php), которая содержит некоторые аргументы, действует как скрипт, например:

curl <a href="http://mysite.com/?update_=1" rel="noreferrer">http://mysite.com/?update_=1</a>

Чего я хотел бы добиться, так это запустить другую "скрипт ", использующий эту технику curl, - каждый раз, когда запускается другой скрипт - перед запуском другого скрипта

Я читал, что curl принимает несколько URL-адресов в одной команде, но я не уверен, будет ли это обрабатывать ulrsпоследовательно или "параллельно".

Ответы [ 4 ]

32 голосов
/ 24 июня 2010

Скорее всего, они будут обрабатываться последовательно (почему бы просто не проверить это).Но вы также можете сделать это:

1) создать файл с именем curlrequests.sh 2) поместить его в файл следующим образом:

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) сохранить файл и сделать его исполняемымс помощью chmod:

chmod +x curlrequests.sh

4) запустите ваш файл:

./curlrequests.sh

или

/path/to/file/curlrequests.sh

В качестве примечания вы можете связывать запросы с &&, напримерэто:

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

И выполнить параллельно, используя &:

curl http://mysite.com/?update_=1 & curl http://mysite.com/?update_=2 & curl http://mysite.com/?update_=3
2 голосов
/ 24 июня 2010

Напишите скрипт с двумя запросами curl в нужном порядке и запустите его с помощью cron, например

#!/bin/bash
curl http://mysite.com/?update_=1
curl http://mysite.com/?the_other_thing
0 голосов
/ 26 июня 2019

Это будет делать то, что вы хотите, использует входной файл и очень быстро

#!/bin/bash
IFS=$'\n'
file=/path/to/input.txt
lines=$(cat ${file})
for line in ${lines}; do
   curl "${line}"
done
IFS=""
exit ${?}

одна запись в строке входного файла, оно будет следовать порядку вашего входного файла

сохраните его как what.sh и сделайте его исполняемым

0 голосов
/ 10 февраля 2018

Я думаю, что это использует больше собственных возможностей

//printing the links to a file
$ echo "/2478492/kak-zapustit-neskolko-zaprosov-curl-obrabatyvaemyh-posledovatelno
https://stackoverflow.com/questions/8445445/
https://stackoverflow.com/questions/4875446/" > links_file.txt


$ xargs curl < links_file.txt

Наслаждайтесь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...