我有一个命令可以连接到不同的远程计算机并执行脚本。我通过使用以下方法来做到这一点:
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”意味着某些东西正在使用相对路径:值得仔细检查脚本,并将其更改为在任何地方都使用绝对路径。 (如果目标计算机上的实用程序由于发行版不同而位于不同位置,请进行测试并动态构建绝对路径。)