当 pssh 中发生管道损坏(每台主机预计有一个输出文件且进程仍在运行)时该怎么办

当 pssh 中发生管道损坏(每台主机预计有一个输出文件且进程仍在运行)时该怎么办

我有一个命令可以连接到不同的远程计算机并执行脚本。我通过使用以下方法来做到这一点:

pssh -h pssh-hosts -l username -A -t 0 -i "bash -x commands.sh".

主机文件中有很多主机。在主机上,运行计算密集型代码并生成 o/p 文件,这可能需要 6 小时或更长时间。运行时我得到:

./test
Write failed: Broken pipe

等待进程完成是否有意义,或者管道损坏是否意味着输出文件(在其他远程主机上)将不会被写入?

答案1

目前可能没有足够的信息来真正利用这一点。

该脚本是否在每台机器上生成运行日志?如果没有,可能值得修改它以使其这样做。 (确保 STDERR 和 STDIN 进入日志。)

我从消息中想到一件事 - “./test”意味着某些东西正在使用相对路径:值得仔细检查脚本,并将其更改为在任何地方都使用绝对路径。 (如果目标计算机上的实用程序由于发行版不同而位于不同位置,请进行测试并动态构建绝对路径。)

相关内容