Si te encuentras mucho con este tipo de cosas, prueba Parallel . Es como dsh (shell distribuido) pero tiene algunas características interesantes como contar semáforos y se mantiene activamente.
De la documentación:
EJEMPLO: GNU Paralelo como sistema de colas / administrador de lotes
GNU Parallel puede funcionar como un simple sistema de cola de trabajos o como administrador de lotes. La idea es poner los trabajos en un archivo y hacer que GNU Parallel lea de eso continuamente. Como GNU Parallel se detendrá al final del archivo, usamos tail para continuar leyendo:
echo >jobqueue; tail -f jobqueue | parallel
Para enviar sus trabajos a la cola:
echo my_command my_arg >> jobqueue
Por supuesto, puede usar -S para distribuir los trabajos a computadoras remotas:
echo >jobqueue; tail -f jobqueue | parallel -S ..
Hay muchos buenos ejemplos que solo rascan la superficie. Aquí hay uno genial.
EJEMPLO: Distribución de trabajo a computadoras locales y remotas
Convierta * .mp3 a * .ogg ejecutando un proceso por núcleo de CPU en la computadora local y el servidor2:
parallel --trc {.}.ogg -j+0 -S server2,: \
'mpg321 -w - {} | oggenc -q0 - -o {.}.ogg' ::: *.mp3