Подтвердить что ты не робот

Как запускать несколько запросов на завивки, обрабатываемых последовательно?

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

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

То, что я хотел бы достичь, - запустить другой "script", используя эту технологию завивки, - каждый раз, когда запускается другой script - до запуска другого script

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

4b9b3361

Ответ 1

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

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

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

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

Ответ 3

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

//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

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

Ответ 4

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

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

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

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

Ответ 5

Согласно справочной странице curl:

Вы можете указать любое количество URL в командной строке. Они будут выбирается последовательно в указанном порядке.

Таким образом, самый простой и эффективный подход (curl отправит их всех по одному TCP-соединению) - это поместить их всех в один вызов curl, например:

curl http://example.com/?update_=1 http://example.com/?update_=2