系统管理员都非常清楚的,能够尽可能各地监测并在很短的时间管理大量计算机,最好尽可能少运行的重要性。 无论是小型云环境还是庞大的服务器集群,集中管理计算机的能力都至关重要。
DSH跨多个服务器运行命令
部分地做到这一点,我将告诉你如何使用名为DSH一个漂亮的小工具,允许用户运行在多台计算机的命令。
另请参阅 : PSSH -在多个远程Linux服务器执行命令
什么是DSH?
DSH是短期的“ 分布式Shell ”或“ 炫舞之壳 ”,它是在Linux上的大部分主要分布免费提供的,但可以很容易地从源头建立,如果你的发行版没有在其包库提供它。 您可以在上获取源。
在Linux中安装DSH(分布式Shell)
我们将承担本教程的范围是Debian / Ubuntu的环境。 如果您使用另一个分发版,请用适当的命令替换程序包管理器。
在Debian / Ubuntu
首先,让我们通过apt安装软件包:
$ sudo apt-get install dsh
在RHEL / CentOS / Fedora上
此方法适用于谁不使用Debian,并希望从源tar球编译的。 首先,你需要编译“libdshconfig”并安装。
# wget http://www.netfort.gr.jp/~dancer/software/downloads/libdshconfig-0.20.10.cvs.1.tar.gz # tar xfz libdshconfig*.tar.gz # cd libdshconfig-* # ./configure ; make # make install
然后编译DSH和安装。
# wget http://www.netfort.gr.jp/~dancer/software/downloads/dsh-0.22.0.tar.gz # tar xfz dsh-0.22.0.tar.gz # cd dsh-* # ./configure ; make # make install
主配置文件“/etc/dsh/dsh.conf”(用于Debian)和“/usr/local/etc/dsh.conf”( 红帽)是非常简单的,但是由于RSH是一个未加密的协议,我们要使用SSH作为远程shell。 使用您选择的文本编辑器,找到这行:
remoteshell =rsh
并将其更改为:
remoteshell =ssh
还有你可以传递在这里,如果你选择这样做,其他的选项,并有大量的人找到了DSH手册页 。 现在,我们要接受默认设置并看看下一个文件,/etc/dsh/machines.list(用于Debian)。
对于基于Red Hat系统需要在“ 在/ usr /本地/ etc /”目录下创建一个名为“machines.list”的文件。
这里的语法很容易。 所有的人都有做的是在机器的凭据( 主机名 ,IP地址或FQDN)每行一个进入。
注意 :当同时访问一机多用,它将对...是应该的,你要建立基于密钥的密码ssh在所有的机器。 这不仅提供方便访问,但安全智能,它加固您的机器以及。
我的“/etc/dsh/machines.list”或“/usr/local/etc/machines.list”的文件说:
172.16.25.125 172.16.25.126
一旦你要访问的计算机的证书已经进入,让我们运行一个简单的命令,比如`` 的正常运行时间对所有的机器。
$ dsh –aM –c uptime
示例输出
172.16.25.125: 05:11:58 up 40 days, 51 min, 0 users, load average: 0.00, 0.01, 0.05 172.16.25.126: 05:11:47 up 13 days, 38 min, 0 users, load average: 0.00, 0.01, 0.05
那么这个命令做了什么?
很简单。 首先,我们跑了DSH并通过了“-a”选项给它,它说发送“ 正常运行 ”命令“ALL”,在“/etc/dsh/machines.list”中列出的机器。
接下来,我们指定了“-M”选项,它说,与正常运行时间命令的输出一起返回“ 计算机名 ”(在“/etc/dsh/machines.list”规定)。 (在许多机器上运行命令时对排序非常有用。)
的“-c”选项表示在这种情况下,“ 要执行的命令 ”,“ 正常运行时间 ”。
DSH也可以用在“ 的/ etc / DSH /组 /”的文件,其中是用机器中的相同的格式“/etc/dsh/machines.list”文件列表的文件计算机组进行配置。 当一组运行DSH,指定后组名 “ - G”选项。
对于基于Red Hat系统需要在“ 在/ usr /本地/ etc /”目录下创建一个名为“ 组 ”文件夹中。 在“ 组 ”目录下创建一个名为“ 集群 ”的文件。
例如,运行中的“ 集群 ”group文件“ 的 / etc / DSH /组/集群 ”或“ 在 / usr / local / etc中/组/集群 ”列出的所有计算机的“w”命令。
$ dsh –M –g cluster –c w
DSH提供了更多的灵活性,而这教程只触及了一些皮毛。 除了执行命令,DSH可以用来传输文件,安装软件,添加路由,等等。
要在系统管理员具有大网络的专责,这是非常宝贵的。