我正在尝试在 bash 脚本中使用pssh(并行 ssh)的 -I 选项并且遇到了困难。此选项应允许您在远程计算机上的本地计算机上执行脚本。我试过做一个非常简单的测试,但似乎无法找出问题所在。我找到了这个线程,但是 pssh 是从命令行运行的,那部分有效。
首先,我有 3 个不同的脚本
测试- 这被放入远程服务器的 /tmp 目录。它不是 bash,只是用于程序外壳的纯文本
testa - 调用一个使用 test 的命令。
test3 - 使用 pscp 将测试发送到 /tmp 并使用 pssh 在远程系统上运行 testa.sh
test3包含以下内容:
#!/bin/bash
set -x
send="pscp.pssh -H 10.1.1.1 -l user /home/user/test /tmp/"
axe="pssh -H 10.1.1.1 -l user -I<./testa -x -tt"
${send}
${axe}
set +x
这是我得到的错误:
+ pssh -H 10.1.1.1 -l user '-I<./testa' -x -tt
Usage: pssh [OPTIONS] command [...]
pssh: error: no such option: -<
+ set +x
pscp 部分工作正常,我刚刚使用 pscp 发送 test 和 testa 并在远程服务器上执行 testa 作为一种解决方法,但我宁愿不发送那个。从调试看来,由于某种原因,在 -I 周围添加了单引号。我已经尝试使用 -I<(./testa.sh) 并且仍然是相同的东西,尽管我可以从命令行运行相同的命令而没有问题。顺便说一下,这是在 Centos 7 上,pssh 版本 2.3.1 和 bash 4.2.46