Как запускать несколько запросов на завивки, обрабатываемых последовательно?
Предполагая, что я большой новобранец unix,
- Я выполняю запрос на завивку через cron каждые 15 минут.
- Curl в основном используется для загрузки веб-страницы (php), которая задает некоторые аргументы, действует как script как:
curl http://mysite.com/?update_=1
То, что я хотел бы достичь, - запустить другой "script", используя эту технологию завивки,
- каждый раз, когда запускается другой script
- до запуска другого script
Я прочитал, что curl принимает несколько URL-адресов в одной команде, но я не уверен, что это будет обрабатывать ulrs последовательно или "параллельно".
Ответы
Ответ 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
Ответ 6
Вы можете указать любое количество URL в командной строке. Они будут выбраны последовательно в указанном порядке.https://blog.zohear.com/su-kien/yen-sao-nguyen-chat-da-nang/