如何 运行 使用 GNU parallel 并行执行 curl 命令
How to run curl commands parallel using GNU parallel
最近刚在 bash 开始编程。我想 运行 curl 命令 'n' 次,其中 n 是用户输入。我想 运行 并行。我遇到了 GNU Parallel。
运行宁n次的curl代码是
ip1="some ip"
ip2="some ip"
ip3="some ip"
for ((j=1; j<= $servers;))
do
for ((i= 1; i<= $val; i++))
do
c=ip$j
value=scatest"$j$i"
curl -s -X POST ${!c}:4000/invoke -H "content-type: application/json" -d '{"args":["org1","'$value'","27-06-2018"]}'
if ((i % $val == 0))
then
((j++))
fi
done
done
我想 运行 根据用户输入在这些不同的主机上平等地并行执行此 curl 命令。谁能帮帮我?
提前致谢
每个服务器并行化相当简单:
val=1000
doit() {
server=""
serverno=""
for ((i= 1; i<= $val; i++))
do
value=scatest"$serverno$i"
curl -s -X POST ${server}:4000/invoke -H "content-type: application/json" -d '{"args":["org1","'$value'","27-06-2018"]}'
done
}
export -f doit
export val
parallel -j0 doit {} {#} ::: serverip1 serverip2 ...
如果您可以接受 scatest
具有不同的值,您可以进一步并行化:
doit() {
server=""
jobno=""
i=""
value=scatest"$jobno$i"
curl -s -X POST ${server}:4000/invoke -H "content-type: application/json" -d '{"args":["org1","'$value'","27-06-2018"]}'
}
export -f doit
seq $val | parallel -j0 doit {1} {#} {2} ::: serverip1 serverip2 ... :::: -
最近刚在 bash 开始编程。我想 运行 curl 命令 'n' 次,其中 n 是用户输入。我想 运行 并行。我遇到了 GNU Parallel。 运行宁n次的curl代码是
ip1="some ip"
ip2="some ip"
ip3="some ip"
for ((j=1; j<= $servers;))
do
for ((i= 1; i<= $val; i++))
do
c=ip$j
value=scatest"$j$i"
curl -s -X POST ${!c}:4000/invoke -H "content-type: application/json" -d '{"args":["org1","'$value'","27-06-2018"]}'
if ((i % $val == 0))
then
((j++))
fi
done
done
我想 运行 根据用户输入在这些不同的主机上平等地并行执行此 curl 命令。谁能帮帮我?
提前致谢
每个服务器并行化相当简单:
val=1000
doit() {
server=""
serverno=""
for ((i= 1; i<= $val; i++))
do
value=scatest"$serverno$i"
curl -s -X POST ${server}:4000/invoke -H "content-type: application/json" -d '{"args":["org1","'$value'","27-06-2018"]}'
done
}
export -f doit
export val
parallel -j0 doit {} {#} ::: serverip1 serverip2 ...
如果您可以接受 scatest
具有不同的值,您可以进一步并行化:
doit() {
server=""
jobno=""
i=""
value=scatest"$jobno$i"
curl -s -X POST ${server}:4000/invoke -H "content-type: application/json" -d '{"args":["org1","'$value'","27-06-2018"]}'
}
export -f doit
seq $val | parallel -j0 doit {1} {#} {2} ::: serverip1 serverip2 ... :::: -