当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
通过dsh批量管理Linux服务器
发布时间:2011/3/24 12:48:34 来源:城市学习网 编辑:ziteng
   目前在企业网络中越来越多的出现Linux服务器,而如果方便高效的大量的Linux服务器是系统管理员非常关心的一个问题。现在有大量的开源管理工具,可以实现这样的管理工具,现在给大家介绍一个通过命令行有效地管理大量Linux的工具---dsh。
    dsh是专为在远程系统上运行Shell命令设计的,通过dsh可以简化对大量计算机的操作。dsh命令语法如下:
    dsh [-m machinename | -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:指定需要执行指定命令的计算机组,主机名组在$HOME/.dsh/group/目录是定义,每个计算机组一个文件,文件名即是组外,在文件中每行一个计算机IP地址。
    -f machinefile:指定计算机列表文件。
    -wait-shell:在默认情况下,dsh是并行地在计算机上运行命令。如果希望顺序地运行命令则指定--wait-shell。[nextpage]
    下面在我们一起来看看在如下图的网络中如何通过dsh有效的管理Linux服务器。

    1、 dsh是通过SSH方式连接到服务器,所以需要在所有服务器上安装SSH。
    2、 在srv.example.zqin上通过如下命令安装dsh。
    srv:~# apt-get -y install libdshconfig1 libdshconfig1-dev dsh3、 在使用dsh进行管理时,需要输入被管理服务器的用户名及密码,为了使用起来更加方便可使用如下命令将SSH的公钥复制到被管理服务器。
    srv:~# ssh-keygen -t rsa
    Generating public/private rsa key pair.
    Enter file in which to save the key (/root/.ssh/id_rsa):
    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 root@testsrv
    The key's randomart image is:
    +--[ RSA 2048]----+
    | |
    | |
    | |
    | . o o |
    | S . = o E|
    | o * oo|
    | . +.+o=|
    | . …+.=|
    | .o++.+.|
    +-----------------+
    srv:~# scp ~/.ssh/id_rsa.pub 192.168.159.21:/root/.ssh/authorized_keys
    srv:~# scp ~/.ssh/id_rsa.pub 192.168.159.22:/root/.ssh/authorized_keys
    srv:~# scp ~/.ssh/id_rsa.pub 192.168.159.31:/root/.ssh/authorized_keys
    srv:~# scp ~/.ssh/id_rsa.pub 192.168.159.32:/root/.ssh/authorized_keys如果被管理的服务器比较多也可以编写个脚本来复制公钥。下面是一个复制公钥到多个服务器上的脚本。
    for i in $(seq 200 253)
    do
    ssh 192.168.159.$i -C mkdir /root/.ssh
    scp ~/.ssh/id_rsa.pub 192.168.1.$i:/root/.ssh/authorized_keys
    done4、 为了方便使用dsh,可以将所有被管理服务器分类并存放到对应文件中。
    将所有被管理服务器的IP地址(或FQDN)加入$HOME/.dsh/machines.list文件中(每行一个)。
    在$HOME/.dsh/group/目录下建立名为web的文件,并将web1、web2的IP地址(或FQDN)加入其中(每行一个)。
    在$HOME/.dsh/group/目录下建立名为db的文件,并将db1、db2的IP地址(或FQDN)加入其中(每行一个)。
    首页技术频道51CTO旗下网站地图 社区:论坛博客下载读书更多 登录注册组网安全开发数据库服务器系统虚拟化云计算嵌入式移动开发
    51CTO.COMCIOage.comWatchStor.comHC3i.cnHC3i.cn灵客风LinkPhone
    家园博客论坛下载自测门诊周刊读书技术圈知道
    Windows Server 2008 R2下载 面向业务的运维 IT短剧解疑难 辟虚拟化新天地 进思杰技术社区 即刻参加微软Windows Phone培训     新闻 | Server 2008 | Windows7 | Linux | Solaris | 浏览器 | 开源 | 移动 | 教程 | 全部您所在的位置: 首页 > 操作系统 > Linux > Linux应用管理 > Linux使用技巧 > 通过dsh批量管理Linux服务器(3)
    http://os.51cto.com  2011-03-15 09:42  张勤  51CTO  我要评论(0)
    摘要:目前在企业网络中越来越多的出现Linux服务器,而如果方便高效的大量的Linux服务器是系统管理员非常关心的一个问题。现在有大量的开源管理工具,可以实现这样的管理工具,现在给大家介绍一个通过命令行有效地管理大量Linux的工具---dsh。
    标签:dsh  批量管理  Linux
    在上述配置完成后就可以在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

广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved