私が大きなUNIXルーキーだとすると、15分ごとにcronを介してcurlリクエストを実行しています。 -Curlは基本的に、いくつかの引数を与えられ、次のようなスクリプトとして機能するWebページ(php)をロードするために使用されます。
curl http://mysite.com/?update_=1
私が達成したいのは、このカール技術を使用して別の「スクリプト」を実行することです-他のスクリプトが実行されるたびに-他のスクリプトが実行される前に
Curlは1つのコマンドで複数のURLを受け入れることを読みましたが、これがulrsを順番に処理するのか「並列」で処理するのかわかりません。
ほとんどの場合、それらを順次処理します(テストするだけではありません)。しかし、これを行うこともできます:
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
curl man page によると:
コマンドラインで任意の数のURLを指定できます。それらは、指定された順序で順次フェッチされます。
したがって、最も単純で最も効率的な(curlはそれらすべてを単一のTCP接続)で送信します)アプローチは、それらをすべてcurlの1回の呼び出しで配置します。例:
curl http://example.com/?update_=1 http://example.com/?update_=2
次のように、2つのcurlリクエストを含むスクリプトを希望の順序で記述し、それをcronで実行します。
#!/bin/bash
curl http://mysite.com/?update_=1
curl http://mysite.com/?the_other_thing
これはあなたが望むことを行い、入力ファイルを使用し、超高速です
#!/bin/bash
IFS=$'\n'
file=/path/to/input.txt
lines=$(cat ${file})
for line in ${lines}; do
curl "${line}"
done
IFS=""
exit ${?}
入力ファイルの行ごとに1つのエントリ。入力ファイルの順序に従います。
それをwhatever.shとして保存し、実行可能にします
これはよりネイティブな機能を使用すると思います
//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
楽しい!
コマンドラインで任意の数のURLを指定できます。それらは、指定された順序で順次フェッチされます。 https://blog.zohear.com/su-kien/yen-sao-nguyen-chat-da-nang/