如何通过 sshpass 在同一个 bash 脚本中建立多个 ssh 连接

如何通过 sshpass 在同一个 bash 脚本中建立多个 ssh 连接

我是 Linux 的新手。让我们想象这样的场景。我有 4 台不同的 Linux 机器,这 4 台机器有不同的脚本。从另一台机器,我想用同一个脚本连接到这 4 台不同的机器并在这些机器上运行脚本。

我在脑子里创造了这样一个方法。

但我不确定如何同时与 4 台不同的机器建立 ssh 连接。我认为在一台机器上完成后应该断开 ssh 连接。

您认为这样的事情会起作用吗或者我该怎么做才能使它起作用?

  #!/bin/bash
  variableA="$1"

  SSHPASS='mypassforsshcon'

  sshpass -p $SSHPASS ssh [email protected] /home/admin/1.sh $variableA
  sshpass -p $SSHPASS ssh [email protected] /home/admin/2.sh $variableA
  sshpass -p $SSHPASS ssh [email protected] /home/admin/3.sh $variableA
  sshpass -p $SSHPASS ssh [email protected] /home/admin/4.sh $variableA

我将非常感谢您的帮助。

答案1

您可以尝试在后台运行它们,方法是&&在每个命令末尾添加,这样它们就会同时执行(几乎)这样的操作

  #!/bin/bash
  variableA="$1"

  SSHPASS='mypassforsshcon'

  sshpass -p $SSHPASS ssh [email protected] /home/admin/1.sh $variableA &&
  sshpass -p $SSHPASS ssh [email protected] /home/admin/2.sh $variableA &&
  sshpass -p $SSHPASS ssh [email protected] /home/admin/3.sh $variableA &&
  sshpass -p $SSHPASS ssh [email protected] /home/admin/4.sh $variableA &&

相关内容