我想用来pdsh
断言命令在多个节点上成功运行,如果该命令在任何节点上失败,则退出代码(来自pdsh
)应为非零。
考虑以下示例:
$ pdsh -w host1,host2 "exit 0"; echo $?
host1: host1
host2: host2
0
$ pdsh -w host1,host2 "exit 1"; echo $?
host1: host1: ssh exited with exit code 1
host2: host2: ssh exited with exit code 1
0
$ pdsh -w host1,host2,host3 "exit 1"; echo $?
host1: host1: ssh exited with exit code 1
host2: host2: ssh exited with exit code 1
host3: host3: ssh exited with exit code 255
0
第二个示例应返回非零退出代码。
在第三个示例中,host3
不存在,退出代码仍然为零。
我错过了什么吗?
谢谢
答案1
pdsh
与其选项一起使用-S
。
从手册中:
-S
返回远程命令返回值中的最大值。
这会将pdsh
实用程序自己的退出状态设置为在远程主机上执行的任何命令的最大退出状态。