DSH – 一次在多台主机上运行 Linux 命令

不久前,我们编写了一个指南,描述了如何在多个远程系统上一次运行单个命令,使用 PSSH 在类 Unix 系统中。 今天,我们将讨论一个类似的工具,称为 DSH. 它代表 D分布式 ell(或舞者的外壳)。 使用 DSH,我们可以一次在多台主机上运行 linux 命令。 它是免费的开源实用程序,使用 C 编程语言。

安装 DSH

在 Arch Linux 及其衍生产品上:

DSH 可用于 AUR,所以你可以使用 AUR 助手安装它,对于 example , 如下所示。

$ yay -S dsh

在 Debian、Ubuntu 上:

DSH 在 Debian、Ubuntu 和其他基于 DEB 的系统(例如 Linux Mint、Elementary OS)的官方存储库中可用。 要在任何基于 DEB 的系统中安装 DSH,请运行:

$ sudo apt-get install dsh

对于其他 Linux 发行版,可以如下所述手动编译和安装 DSH。

DSH 要求 libdshconfig 为了工作。 您可以从以下位置下载最新版本的 libdshconfig 和 dsh 这个链接.

下载后,转到您下载这两个软件包的目录。

首先使用命令编译和安装 libdshconfig:

$ tar xfz libdshconfig*.tar.gz
$ cd libdshconfig-*
$ ./configure ; make
$ sudo make install

然后,编译并安装 dsh。

$ tar xfz dsh*.tar.gz
$ cd dsh-*
$ ./configure ; make
$ sudo make install

配置 DSH

我们已经安装了 dsh。 现在让我们配置 DSH 以在多个主机上执行命令。 为此,首先编辑 DSH 配置文件并将远程 shell 值从 rsh 设置为 ssh。

在 Arch Linux 及其衍生版本上,默认配置文件是 /etc/kgname/dsh.conf.

编辑这个文件:

$ sudo vi /etc/kgname/dsh.conf

改变 远程外壳 值来自 rshSSH.

#default configuration file for dsh.
 # suppled as part of dancer's shell

verbose = 0

remoteshell =ssh
 showmachinenames = 0
waitshell=1 # whether to wait for execution

#remoteshellopt=...

# default config file end.

在基于 DEB 的系统上:

$ sudo vi /etc/dsh/dsh.conf

remoteshell =ssh

在基于 RPM 的系统上:

$ sudo vi /usr/local/etc/dsh.conf

remoteshell =ssh

接下来,我们需要添加要执行命令的远程主机。

为此,请创建/编辑 机器列表 文件并添加远程主机。

在 Arch Linux 及其衍生产品上:

$ sudo vi /etc/kgname/machines.list

如下图一一添加远程主机的IP或主机名。

192.168.43.100 
192.168.43.101

在基于 DEB 的系统上:

$ sudo vi /etc/dsh/machines.list
192.168.43.100 
192.168.43.101

在基于 RPM 的系统上:

$ sudo vi /usr/local/etc/machines.list
192.168.43.100
192.168.43.101

您可以添加任意数量的远程主机 机器列表 文件。

使用 DSH 一次在多台主机上运行 Linux 命令

添加所有远程主机并在所有远程系统上创建公共用户后,您可以一次在所有远程主机上执行 Linux 命令。 说为 example,下面的命令将执行 unname -r 一次在所有远程主机上执行命令。

$ dsh -a -c uname -r

它将要求您输入相应远程主机的用户名和密码。 如果您不想每次运行此命令时都输入用户凭据,只需 配置无密码SSH登录.

样本输出:

3.10.0-514.16.1.el7.x86_64
4.4.0-34-generic

正如您在上面的输出中看到的,dsh 实用程序显示了我的两个远程主机的内核版本。

有关更多详细信息,请参阅手册页。

$ man dsh

建议阅读:

  • 通过 SSH 在远程 Linux 系统上执行命令

资源:

感谢您的光临!

帮助我们帮助您:

祝你有美好的一天!!