Восстановление случайно удаленных файлов, блочное устройство

Да, но ваш вывод может быть искажен. Лучше, чтобы функция записывала свой вывод в определенный файл в зависимости от имени хоста, а затем позволяла основному сценарию объединить результат (и очистить).

Кроме того, вы должны заключать переменные в двойные кавычки. Скопируйте и вставьте сценарий в ShellCheck .

Может быть, что-то вроде этого:

#!/bin/bash

hosts=( host1 host2 host3 )
outfile="nvidia_smi.txt"

rm -f "$outfile"

function process_host {
    local host="$1"
    local hostout="$host.out"
    printf "Processing host '%s'\n" "$host"
    echo "$host" >"$hostout"
    ssh "$host" nvidia-smi >>"$hostout"
}

for host in "${hosts[@]}"; do
    process_host "$host" &
done

wait

for host in "${hosts[@]}"; do
    hostout="$host.out"
    cat "$hostout"
    rm -f "$hostout"
done >"$outfile"

cat "$outfile"

Последний цикл можно заменить на

cat "${hosts[@]/%/.out}" >"$outfile"
rm -f "${hosts[@]/%/.out}"

2
06.05.2015, 14:02
0 ответов

Теги

Похожие вопросы