DSH一次在多个主机上运行Linux命令
我们将介绍一个名为DSH的类似工具。
它代表Distributed shell (或者dancer’s shell )。
使用DSH,我们可以一次在多个主机上运行Linux命令。
它是使用C编程语言编写的免费和开源实用程序。
安装DSH.
关于Arch Linux:
DSH在AUR中提供,因此我们可以使用AUR助手(例如YAY)安装它,如下所示。
$yay -S dsh
在Debian,Ubuntu:
DSH可在Debian,Ubuntu和其他基于DEB的系统的官方存储库中提供,如Linux Mint,Mexhileary 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配置文件,并将RSH的远程shell值设置为ssh。
在Arch Linux上,默认配置文件是/etc/kgname/dsh.conf。
编辑此文件:
$sudo vi /etc/kgname/dsh.conf
将RSH的Remoteshell值更改为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
接下来,我们需要添加我们想要执行命令的远程主机。
为此,请创建/编辑机器.List文件并添加远程主机。
关于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
我们可以在机器中添加任何数量的远程主机.List文件。
一次使用DSH在多个主机上运行Linux命令
添加了所有远程主机并在所有远程系统上创建公共用户,我们可以立即在所有远程主机上执行Linux命令。
例如,下面的命令将立即在所有远程主机上执行uname -R命令。
$dsh -a -c uname -r
它会要求我们输入各个远程主机的用户名和密码。
如果每次运行此命令时不想输入用户凭据,只需配置密码的SSH登录。
示例输出:
3.10.0-514.16.1.el7.x86_64 4.4.0-34-generic
如上所述,DSH实用程序显示我两个远程主机的内核版本。