我写了一个bash脚本,我没有机会下载pssh。但是,我需要并行运行多个ssh命令。到目前为止还没有问题,但是当我运行ssh命令时,我希望看到远程机器的顺序输出。我的意思是一个ssh有多个输出,它们会混淆,因为有多个ssh在运行。
#!/bin/bash
pid_list=""
while read -r list
do
ssh user@$list 'commands'&
c_pid=$!
pid_list="$pid_list $c_pid"
done < list.txt
for pid in $pid_list
do
wait $pid
done
我应该在代码中添加什么才能得到未混合的输出?
1条答案
按热度按时间2guxujil1#
对我来说,最明显的方法是将输出写在一个文件中,并在最后写
cat
文件:我没有处理
stderr
,因为它不在你的问题中。我也没有处理输出的顺序,因为它也没有指定。也没有处理输出是否应该在每个主机完成时显示。如果你想涵盖这些方面,请改进你的问题。