pdsh、ClusterSSH和mussh集群管理软件

  当咱们管理数以十计或者更多的集群系统时,每每须要在每台机器上执行一样的命令,或者拷贝一样的文件,这时,咱们就能够考虑使用三个小工具,分别是pdshClusterSSHmussh
  在Fedora系统上,咱们能够直接经过yum安装这三个软件。
yum install clusterssh pdsh pdsh-rcmd-ssh pdsh-rcmd-rsh mussh
若是是其余Linux系统,也能够到http://clusterssh.sourceforge.net http://sourceforge.net/projects/pdshhttp://www.sourceforge.net/projects/mussh下载相应的软件。
  不管是clusterssh仍是pdshmussh,咱们都应该相应的设置无密码登陆目标系统,这方面的内容,有不少介绍,本文再也不说起。
1、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/
2、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的不便之处在于,管理机器越多,则打开的窗口越多,若是屏幕过小,就很是难受了。




3、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系统,配合一些监控软件,感受有上述几个管理工具,基本就足够了。彻底没有必要使用商业管理软件。
css

相关文章
相关标签/搜索