Ome*_*gan 4 parallel-processing gnu-parallel
我正在尝试在具有多个参数的多个远程服务器上运行脚本。GNU并行命令是:
parallel --onall -S ${RH32},{RH64} /shared/loc/script.sh ::: param1 param2
script.sh:
host=`uname -n`
param=$1
logfile=/shared/loc/log-$host-$param
for i in `seq 1 5`; do
    touch ${logfile}_$i
    sleep 2
done
我正在尝试并行运行4个进程:
当查看累积的输出时,看起来实际上是这样的:
-正在并行运行。完成后,其他两个将并行运行。
如何使所有四个同时并行运行?
谢谢,
您正在做出一个设计决策:--jall运行时-j是什么意思?决定-j是要同时运行的主机数(在您的情况下为2)。这样做是为了很容易在多个主机上并行运行命令。
您可以做的是parallel用另一个parallel命令包装您的命令:
parallel parallel --onall -S ${RH32},${RH64} --argsep // /shared/loc/script.sh // ::: param1 param2
这将为parallel每个参数生成,内部parallel将为每个服务器生成。
另一个解决方案是自己编写ssh命令:
parallel ssh {1} /shared/loc/script.sh {2} ::: ${RH32} ${RH64} ::: param1 param2