`
nlslzf
  • 浏览: 1048820 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用pdsh、ClusterSSH和mussh管理集群系统

阅读更多

http://linux.chinaunix.net/bbs/thread-1061339-1-1.html

 

当我们管理数以十计或者更多的集群系统时,往往需要在每台机器上执行同样的命令,或者拷贝同样的文件,这时,我们就可以考虑使用三个小工具,分别是pdshClusterSSHmussh
  在Fedora系统上,我们可以直接通过yum安装这三个软件
yum install clusterssh pdsh pdsh-rcmd-ssh pdsh-rcmd-rsh mussh
如果是其他Linux系统,也可以到http://clusterssh.sourceforge.nethttp://sourceforge.net/projects/pdshhttp://www.sourceforge.net/projects/mussh下载相应的软件。
  无论是clusterssh还是pdshmussh,我们都应该相应的设置无密码登录目标系统,这方面的内容,有很多介绍,本文不再提及。
一、pdsh  首先介绍一下pdsh,首先必须在管理节点和每台目标机器上都安装pdsh软件包。pdsh可以在指定的一组机器上执行同一个命令。例如需要管理下列机器,机器名分别为node211,node232,node233,node234,node240
命令格式如下:
pdsh -w [SSH_OR_RSH]:USERNAME@node[211,232-234,240] [COMMAND] 
其中大写的部分应该被实际内容所取代。例如希望以maluyao用户的身份,在每台机器上执行hostname命令,使用ssh方法进行连接,则结果如下:
[tt@node111 ~]$ pdsh -w ssh:maluyao@node[211,232-234,240] hostname
node240: node240.hn.org
node233: node233.hn.org
node234: node234.hn.org
node232: node232.hn.org
node211: node211.hn.org
这样可以非常清楚的看到每台机器上执行的结果。
另外一些时候,我们可以希望在每台机器上执行一组也许不确定的命令,这时我们可以省略[COMMAND]部分,用法如下:
[tt@node111 ~]$ pdsh -w ssh:maluyao@node[211,232-234,240]
pdsh> hostname
node240: node240.hn.org
node234: node234.hn.org
node233: node233.hn.org
node232: node232.hn.org
node211: node211.hn.org
pdsh> date
node234: Mon Oct 27 14:59:37 CST 2008
node240: Mon Oct 27 14:59:37 CST 2008
node232: Mon Oct 27 14:59:37 CST 2008
node233: Mon Oct 27 14:59:37 CST 2008
node211: Mon Oct 27 14:59:38 CST 2008
pdsh> exit
pdsh软件包还自带了pdcp命令,可以将文件拷贝到一组机器上,用法如下:
pdsh -w [SSH_OR_RSH]:[USERNAME]@node[211,232-234,240] SOURCE_FILE DESTINATION 
想将文件x.org拷贝到上述机器的/home/maluyao/当中,可执行下列命令:
pdcp -w ssh:maluyao@node[211,232-234,240] x.org /home/maluyao/
如果要拷贝的是目录,则需使用-r参数,例如将目录abc拷贝到/home/maluyao,执行命令如下:
pdcp -r -w ssh:maluyao@node[211,232-234,240] abc /home/maluyao/
二、ClusterSSHclusterssh是另外一个集群管理软件,可以同时打开多个窗口进行操作。例如最简单的用法可能如下:
cssh root@node211 root@node232 root@node234 
不过当管理数以十计或数以百计机器的时候,在命令行就很难添加如此众多的机器名了。这时的办法是使用一个配置文件进行管理。首先生成一个配置文件,命令为:
cssh -u > ~/.csshrc
这个~/.csshrc文件里可以定义如干个组,例如在此文件结尾处添加
clusters=ibm hp inspur
ibm=root@node211 root@node232 root@node233 root@node234 root@node240
hp=root@hp211 root@hp232 root@hp233 root@hp234 root@hp240
inspur=root@inspur211 root@inspur232 root@inspur233 root@inspur234 root@inspur240
这样就可以使用cssh hp cssh ibm来连接指定的群组了。clusterssh的不便之处在于,管理机器越多,则打开的窗口越多,如果屏幕太小,就非常难受了。




三、musshmussh也是Fedora系统自带的一款管理多主机的ssh软件,和上述两种软件类似,可以互为补充。
mussh可以让你把本地的脚本,在多台ssh目的机器上执行。格式如下
mussh [OPTIONS] <-h host.. | -H hostfile> [-c cmd] [-C scriptfile]
例如想在多个机器上执行hostname命令,可以执行如下命令:
[tt@node111 ~]$ mussh -h root@node211 root@node212 -c hostname 
root@node211: node211.hn.org 
root@node212: node212.hn.org
如果想执行本地脚本test.sh,可以执行如下命令:
[tt@node111 ~]$ mussh -h root@node211 root@node212 -C test.sh
另外还可以通过建立hostfile的方式,使得命令执行时更为简化,例如在hostfile01.txt中写入:
[email=root@node211]root@node211[/email] [email=root@node212]root@node212[/email]
[tt@node111 ~]$ mussh -H hostfile01.txt -c hostname 
root@node211: node211.hn.org 
root@node212: node212.hn.org
笔者日常负责管理不到两百台Linux系统,配合一些监控软件,感觉有上述几个管理工具,基本就足够了。完全没有必要使用商业管理软件。

分享到:
评论

相关推荐

    pdsh集群管理

    pdsh 集群管理 pdsh 是一个高性能、并行的远程 shell 工具,用于管理 Linux 集群。它使用线程的滑动窗口来执行远程命令,并且可以使用多种 rcmd 工具连接到远程主机并执行命令。 pdsh 的核心功能可以使用很多可...

    centos 7 pdsh rpm 安装包

    RPM是一种二进制软件包管理系统,它包含了软件的元数据,如软件名称、版本、依赖关系等。在CentOS 7中,RPM包可以通过`yum`或`dnf`(Dandified YUM)命令来管理,这两个工具会自动处理软件包的依赖关系,确保安装...

    pdsh安装包及教程.zip

    **pdsh** 是一个在Linux系统中用于并行执行命令的工具,它允许用户在一个集群或多台主机上同时运行命令,极大地提高了管理大规模系统的效率。`pdsh` 的全称可能是 "Parallel Distributed Shell",它扩展了传统的 `...

    pdsh 使用手册指南

    - **CFEngine**是一个强大的配置管理系统,被广泛应用于自动配置、合规性和资源管理。 - **守护进程**:`cf-agent`用于执行策略文件中的指令。 - **命令**:`cf-execd`用于监控配置文件的变化,并触发相应的更新...

    并行集群系统概述

    通过以上介绍可以看出,并行集群系统是一种高度灵活且功能强大的计算资源集合体,不仅能够满足高性能计算的需求,还能根据实际应用场景进行定制化的部署和管理。无论是对于科研机构还是企业数据中心,掌握并行集群...

    pdsh-v2.26~2.29.zip

    通过 **pdsh**,你可以一次性在所有或指定的节点上运行同样的命令,而无需手动逐个操作,这对于大规模集群的管理和维护尤其有用。 在描述中提到,提供的压缩包包含从 v2.26 到 v2.29 的 **pdsh** 版本。这意味着...

    pdsh-2.9.rar

    Pdsh is a high-performance, parallel remote shell utility. It has built-in, thread-safe clients for Berkeley and Kerberos V4 rsh, and can call SSH externally (though with reduced performance). Pdsh ...

    pdsh并行分布式运维工具1

    【pdsh】是一款并行分布式运维工具,全称为parallel distributed shell,它允许用户同时在多台远程...正确理解和使用pdsh,能有效提升IT运维人员的工作效率,降低出错率,对于大型数据中心或云环境的管理具有重要意义。

    pdsh-2.26源文件

    pdsh的全称是parallel distributed shell,与pssh类似,pdsh可并行执行对远程目标主机的操作,在有批量执行命令或分发任务的运维需求时,使用这个命令可达到事半功倍的效果。同时,pdsh还支持交互模式,当要执行的...

    大数据面试题 100道.pdf

    集群管理可以使用 Puppet、Pdsh、Cloudera Manager、Zookeeper 等工具,Zookeeper 是一个分布式协调服务,可以管理 Hadoop 集群。 8. Client 端上传文件 Client 端上传文件时,会将文件切分为多个 Block,然后将每...

    大数据技术之Hadoop知识分享 Hadoop面试题目及其答案 Hadoop面试题目整理 Hadoop使用经验 共9页.pdf

    7. **集群管理工具**:Puppet、Pdsh和Cloudera Manager都是用于管理Hadoop集群的工具,而Zookeeper则提供分布式协调服务,对于Hadoop和HBase等系统中的命名服务、配置管理、选举等场景至关重要。 8. **机架感知**:...

    《大数据技术原理和应用操作》试卷B卷及答案.pdf

    5. 大数据在医疗行业有助于疾病预防和管理,但不能直接控制疾病发生。 6. 传统文件系统在处理大文件时的确可能存在上传和下载速度慢的问题。 7. 伪分布式模式的Hadoop功能简化,不完全等同于完全分布式模式。 8. ...

    最新大数据Hadoop面试题!(附答案解析).pdf

    - 集群管理工具有Puppet、Pdsh和Cloudera Manager等,这些工具可以帮助管理员进行配置、监控和管理分布式系统。 - **机架感知**:配置机架感知可以在一个机架出现问题时,仍然能保证数据的可用性和读写性能,因为...

    《大数据技术原理和应用操作》试卷B卷及答案.docx

    【大数据技术原理和应用操作】试卷B卷涉及了多个IT领域的知识点,主要集中在大数据处理、Linux网络配置、MapReduce、Zookeeper、Hadoop集群管理和操作等方面。以下是对这些知识点的详细阐述: 1. **Linux网络参数...

    大数据面试题-.docx

    管理工具如Puppet、Pdsh、Cloudera Manager和Zookeeper可用于集群的配置、监控和管理。 4. **数据流动**:客户端在上传文件时,会将文件切分成Block并直接上传到DataNode,而不是通过NameNode。NameNode负责Block的...

    《大数据技术原理和应用操作》试卷A卷及答案.pdf

    * 可以作为集群的管理的工具有 Puppet、Pdsh 和 Cloudera Manager * Hadoop 版本系列包括 Hadoop1、Hadoop2 和 Hadoop3 * Hadoop 提供的自定义配置时编辑的配置文件包括 core-site.xml、hdfs-site.xml、mapred-site....

    大数据开发面试集锦

    大数据开发面试集锦 本资源摘要信息涵盖了大数据开发相关的...* 可以使用 Puppet、Pdsh、Cloudera Manager、Zookeeper 等工具来管理 Hadoop 集群。 * Zookeeper 是一个分布式应用程序协调服务,用于管理 Hadoop 集群。

Global site tag (gtag.js) - Google Analytics