这是一个简单的脚本,可以nvidia-smi
在多个主机上运行命令,并将其输出保存到公共文件中。这里的目标是使其异步运行。
&
在process_host()
函数结尾是否足够?我的脚本正确吗?
#!/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