Pssh–使用本地系统在多个远程Linux服务器上执行命令

ssh 是Linux系统管理员使用的非常有用的协议和工具。它提供了对远程系统和服务器的简单、安全和快速的访问。它还安全地提供本地和远程系统之间的文件拷贝。但在企业环境中,我们通常需要在多个远程服务器上运行单个命令。在这种情况下 ssh 命令可以帮助您,但它有一些限制。我们可以用 pssh 或并行ssh  超越限制。

null

为Debian、Ubuntu、Mint、Kali安装Pssh

我们将从安装 pssh 工具插入 deb apt 基于Debian、Ubuntu、Mint、Kali等系统,使用以下命令。

$ sudo apt install pssh -y

为Fedora、CentOS和RHEL安装Pssh

语法

我们可以安装 pssh 进入之内 rpm yum 基于以下命令的系统。

$ sudo yum install pssh -y
Install Pssh For Fedora, CentOS, RHEL Syntax
为Fedora、CentOS、RHEL语法安装Pssh

远程主机资源清册

由于我们希望在多个远程系统上运行单个命令,指定远程系统的最佳方法是创建远程主机资源清册。因此,我们将向 pssh 命令。Inventory只是一个文本文件,我们要在其中逐行列出要运行命令的每个远程主机。主机清单文件的位置并不重要,因为我们将手动指定它。下面是一个示例主机文件。我们可以指定IP地址。请记住,主机名应该由本地或远程dns解析。

192.168.115.146db1app5

在远程计算机上运行给定命令

现在我们可以使用 pssh 在我们当地的系统里。我们将从一个在远程系统上运行的简单命令开始。我们不需要在远程系统上进行任何安装或更改来运行命令 pssh . 远程系统必须支持要运行的命令。在本例中,我们将使用名为 inventory 并运行命令 echo "Hello POFTUT" . 命令将在远程系统上以本地用户名运行。

$ pssh -h inventory  -A echo "Hello POFTUT"
Run Given Command On Remote
在远程计算机上运行给定命令

指定远程用户名

如果我们需要在远程系统上使用不同的用户呢。我们可以用 -l 登录参数。在本例中,我们将指定用户名 root 用于远程系统。

$ pssh -h inventory -l root  -A echo "Hello POFTUT"
Specify Remote Username
指定远程用户名

打印命令输出到本地终端

到目前为止,我们已经在远程系统中执行了命令,但是没有从命令中得到任何反馈或输出。我们可以用 -i 交互式选项,将远程系统命令输出绑定到本地终端,并将输出打印到shell。

$ pssh -h inventory -i  -A echo "Hello POFTUT"
Print Command Output To Local Terminal
打印命令输出到本地终端

将标准输出保存到文件

在前面的示例中,我们已经将命令输出打印到本地终端。另一个有用的选择是 pssh 正在不使用任何外部命令或应用程序将此输出写入或保存到文件中。我们将使用 -o 选项并提供路径。在本例中,我们将输出路径设置为 comm . 对于每个远程主机,将创建一个文本文件并保存提供的输出。

$ pssh -h inventory -o comm  -A echo "Hello POFTUT"
Save Standard Output To A File
将标准输出保存到文件

相关文章: 如何在运行Git、Rsync等Shell命令时指定Ssh密钥

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享