1、通过dsh批量管理Linux服务器发布时间: 2011-4-11 10:15 作者: 张勤 来源: 51Testing软件测试网采编字体: 小 中 大 | 上一篇 下一篇 | 打印 | 我要投稿 | 推荐标签: Linux 操作系统 目前在企业网络中越来越多的出现Linux服务器,而如何方便高效的管理大量的Linux服务器是系统管理员非常关心的一个问题。现在有大量的开源管理工具,可以实现这样的管理工具,现在给大家介绍一个通过命令行有效地管理大量Linux的工具-dsh。dsh是专为在远程系统上运行Shell命令设计的,通过dsh可以简化对大量计算机的操作。dsh命令语法如下:dsh -m ma
2、chinename | -a | -g groupname -f machinefile -M -q -wait-shell-commandline常用选项:-M:在显示远程命令执行的输出时,在前面加上主机名。-a:如果经常操作同一组计算机,可以创建一个全局集合的组。$HOME/.dsh/machines.list文件是全局集合的定义。在该文件中每行一个计算机的IP地址,在指定-a后,dsh就会在machines.list中列出的所有计算机上执行指定的命令。-q:指定使用安静模式输出。-m machinename:指定需要执行指定命令的计算机。-g groupname:指定需要执行指定命令的计
3、算机组,主机名组在$HOME/.dsh/group/目录是定义,每个计算机组一个文件,文件名即是组外,在文件中每行一个计算机IP地址。-f machinefile:指定计算机列表文件。-wait-shell:在默认情况下,dsh是并行地在计算机上运行命令。如果希望顺序地运行命令则指定-wait-shell。下面在我们一起来看看在如下图的网络中如何通过dsh有效的管理Linux服务器。1、dsh是通过SSH方式连接到服务器,所以需要在所有服务器上安装SSH。2、在srv.example.zqin上通过如下命令安装dsh。srv:# apt-get -y install libdshconfig1
4、 libdshconfig1-dev dsh3、在使用dsh进行管理时,需要输入被管理服务器的用户名及密码,为了使用起来更加方便可使用如下命令将SSH的公钥复制到被管理服务器。通过dsh批量管理Linux服务器发布时间: 2011-4-11 10:15 作者: 张勤 来源: 51Testing软件测试网采编字体: 小 中 大 | 上一篇 下一篇 | 打印 | 我要投稿 srv:# ssh-keygen -t rsaGenerating public/private rsa key pair.Enter file in which to save the key (/root/.ssh/id_r
5、sa):Enter passphrase (empty for no passphrase):Enter same passphrase again:Your identification has been saved in /root/.ssh/id_rsa.Your public key has been saved in /root/.ssh/id_rsa.pub.The key fingerprint is:dd:e9:d3:84:fc:4c:ff:b4:b0:fa:12:fa:fd:49:3d:4d roottestsrvThe keys randomart image is:+-
6、RSA 2048-+| | | | . o o | S . = o E| o * oo| . +.+o=| . .+.=| .o+.+.|+-+srv:# scp /.ssh/id_rsa.pub 192.168.159.21:/root/.ssh/authorized_keyssrv:# scp /.ssh/id_rsa.pub 192.168.159.22:/root/.ssh/authorized_keyssrv:# scp /.ssh/id_rsa.pub 192.168.159.31:/root/.ssh/authorized_keyssrv:# scp /.ssh/id_rsa.p
7、ub 192.168.159.32:/root/.ssh/authorized_keys如果被管理的服务器比较多也可以编写个脚本来复制公钥。下面是一个复制公钥到多个服务器上的脚本。for i in $(seq 200 253)dossh 192.168.159.$i -C mkdir /root/.sshscp /.ssh/id_rsa.pub 192.168.1.$i:/root/.ssh/authorized_keysdone4、为了方便使用dsh,可以将所有被管理服务器分类并存放到对应文件中。将所有被管理服务器的IP地址(或FQDN)加入$HOME/.dsh/machines.list文
8、件中(每行一个)。在$HOME/.dsh/group/目录下建立名为web的文件,并将web1、web2的IP地址(或FQDN)加入其中(每行一个)。在$HOME/.dsh/group/目录下建立名为db的文件,并将db1、db2的IP地址(或FQDN)加入其中(每行一个)。在上述配置完成后就可以在srv上通过dsh进行批量操作了,下面我们一起来看几个例子。1、在db1.example.zqin上执行reboot命令。srv:# dsh -M -m db1.example.zqin - reboot2、在$HOME/.dsh/machines.list文件中定义的所有服务器上同时执行updatedb命令。srv:# dsh -M -a - updatedb3、在$HOME/.dsh/group/web文件中定义的所有服务上面上同时执行命令。srv:# dsh -M -g - /etc/init.d/apache2 restart
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1