logdir='mktemp -d'
bunch=200
IFS=$'\n'
for hosts in $(< hosts.lst xargs -r -L "$bunch"); do
IFS=" ";
for host in $hosts; do
ssh -n -o BatchMode=yes "$host" './runScript.sh' 1>"$logdir/$host.log" 2>&1 &
done
wait
done
Supondo que os 100s de hosts estejam listados como uma / linha no arquivo hosts.lst e, em seguida, um grupo seja selecionado em uma vez (200), e em cada um desses 200 hosts geraram runScript.sh using ssh em batch mode e, ao mesmo tempo, preservando o stdout+stderr de cada um desses trabalhos em segundo plano em um arquivo com o nome host no diretório $logdir , que pode ser examinado como e quando necessário. / p>
Finalmente, esperamos que um grupo termine antes de lançar o próximo grupo, por meio do comando wait no final do loop for interno.