Bash:- 批量机器执行的命令
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Bash:- 批量机器执行的命令相关的知识,希望对你有一定的参考价值。
【应用场景】
有一批服务器需要执行命令,需根据机器数量来衡量选用方法;
第一种方法:适合数量很少情况下,串行执行,耗时较长;
LIST=( "192.168.1.1|/data/server1" "192.168.1.2|data/server2" ) for i in ${LIST[@]};do command "${LIST[0]}" "${LIST[0]}" done
第二种方法:适合数量不多情况下,并行执行,耗行较短,但是容易挤坏机器;
LIST=( "192.168.1.1|/data/server1" "192.168.1.2|data/server2" ... ) for i in ${LIST[@]};do (command "${LIST[0]}" "${LIST[0]}") & done wait
第三种方法:模拟并发,兼顾以上两者;
LIST=(
"192.168.1.1|/data/server1"
"192.168.1.2|data/server2"
...
)
PARALLEL=10 tmpfile=$$.fifo mkfifo ${tmpfile} exec 4 <> ${tmpfile} rm -f ${tmpfile} { while [ ${PARALLEL} -gt 0 ];do echo let PARALLEL=${PARALLEL}-1 done } > &4 while read -u10 SEQ;do read < &4 (command;echo >&4)& done 10< <(for i in ${LIST[@]};do echo ${i};done)
以上是关于Bash:- 批量机器执行的命令的主要内容,如果未能解决你的问题,请参考以下文章