我有一个脚本,它将作为中央服务器的参数执行,如下所示-
`SCRIPT.sh host1`
像上面一样,我必须在许多主机上执行。因此每台主机将需要1分钟的时间来执行。
SCRIPT.sh host1
SCRIPT.sh host2
SCRIPT.sh host3
......
.........
到目前为止,我正在下面的简单for循环中尝试,这会花费太多时间。
for i in `cat host_list`;do echo $i;SCRIPT.sh $i;done
是否有可能在上述并行执行循环,我的意思是一次50/100主机。 有任何建议。
答案 0 :(得分:0)
您可以使用“&”在不同的shell上运行并行批处理命令。
for i in `cat host_list`;do echo $i;SCRIPT.sh $i & done
如果有很多Shell脚本,也可以在它们之间放置“ wait”。
答案 1 :(得分:0)
parallel -j50 SCRIPT.sh :::: host_list
如果SCRIPT.sh
包含ssh $1 "cmd; cmd; cmd"
,则可以改为:
parallel -j50 --slf host_list --nonall 'cmd; cmd; cmd'