Este es un script simple que ejecuta nvidia-smi
comandos en varios hosts y guarda su salida en un archivo común. El objetivo aquí es hacer que se ejecute de forma asincrónica .
¿ &
Al final de la process_host()
llamada de función es suficiente? ¿Es correcto mi guión?
#!/bin/bash
HOSTS=(host1 host2 host3)
OUTPUT_FILE=nvidia_smi.txt
rm $OUTPUT_FILE
process_host() {
host=$1
echo "Processing" $host
output=`ssh ${host} nvidia-smi`
echo ${host} >> $OUTPUT_FILE
echo "$output" >> $OUTPUT_FILE
}
for host in ${HOSTS[@]}; do
process_host ${host} &
done;
wait
cat $OUTPUT_FILE
bash
background-process
sintagma
fuente
fuente
Processing host1
será seguido porProcessing host2
y la salida de enhost2
lugar de la salida dehost1
.