Ini adalah skrip sederhana yang menjalankan nvidia-smi
perintah pada banyak host dan menyimpan hasilnya ke file umum. Tujuannya di sini adalah membuatnya berjalan secara tidak sinkron .
Apakah &
pada akhir process_host()
pemanggilan fungsi sudah cukup? Apakah skrip saya benar?
#!/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
syntagma
sumber
sumber
Processing host1
akan diikuti olehProcessing host2
dan keluaran darihost2
daripada keluaran darihost1
.