不久前,我们编写了一个指南,描述了如何在多个远程系统上一次运行单个命令,使用 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
改变 远程外壳 值来自 rsh 到 SSH.
#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 系统上执行命令
资源:
感谢您的光临!
帮助我们帮助您:
- 订阅我们的电子邮件通讯: 立即注册
- 支持 OSTechNix: 通过贝宝捐款
- 下载免费的电子书和视频: TradePub 上的 OSTechNix
- 联系我们: 红迪网 | Facebook | Twitter | 领英 | RSS订阅
祝你有美好的一天!!