gnu parallel 的 --onall 不能与 sshpass 一起使用吗?

问题描述 投票:0回答:1

我正在尝试在多个服务器上运行相同的命令。 每个服务器都是密码认证的,所以我导出了SSHPASS。

从选项 2 开始,添加

--onall
并且命令开始失败。

  1. parallel -S 1/user:@ip echo ::: foo
    成功显示 foo (看起来它自动使用 sshpass?并且 user 后面的冒号必须在那里,以免永远挂起,不知道为什么)
  2. parallel -S 1/user:@ip,1/user:@ip2 --onall  echo ::: foo
    挂起且无响应
  3. parallel --ssh "sshpass -e ssh" -S 1/user:@ip,1/user:@ip2 --onall  echo ::: foo
    给出了
    Permission denied, please try again.
    两次(当我故意在正常的
    ssh user@ip
    命令中给出错误的密码时,这是同样的错误,让我认为使用
    --oncall
    会停止发送正确的或任何密码)
  4. parallel --ssh "sshpass -e ssh" --slf iplist --onall  echo ::: foo
    显示与第 3 点相同的输出。
    iplist
    是选项 2 和 3 中 ip 的换行分隔版本,我假设 -slf 与 -S 完全相同。

问题

  1. 考虑到需要密码,如何在多个服务器上运行相同的命令?
  2. 为什么--onall会让终端挂起而没有响应? (引擎盖下是否有任何互动等待)
gnu-parallel
1个回答
0
投票

您发现了一个错误。

https://savannah.gnu.org/bugs/?65679

20240522修复(限制密码不能包含空格):

https://git.savannah.gnu.org/cgit/parallel.git/diff/NEWS

© www.soinside.com 2019 - 2024. All rights reserved.