内容来源(公众号:PHP版WEB项目)mussh的全称是MUltihost SSH Wrapper,它其实是一个SSH封装器,由一个shell脚本实现。通过mussh可以实现批量管理多台远程主机的功能。在大规模自动化运维环境中,mussh可以起到很好的补充作用。
一、mussh功能介绍
mussh和上面介绍的pssh、pdsh类似,都用于批量管理主机,并且可以互为补充,通过mussh可以同时在多台远程主机上执行SSH命令或脚本,这里重点关注mussh执行脚本的功能。mussh可以把本地的脚本在多台远程主机上执行,这个功能十分有用,下面会做重点介绍。
要使用mussh的批量管理功能,仍然需要在本地管理主机和远程主机之间做SSH的单向信任,这个在介绍pssh时已经做过详细介绍,这里不再进行说明。
二、mussh的安装与语法
mussh的安装非常简单,读者可以在http://mussh.sourceforge.net/获取mussh的安装包。目前mussh的最新版本是mussh-1.0。这里下载的软件包为mussh-1.0.tgz,将安装包解压到本地管理主机上即可完成mussh的安装,解压出来的mussh命令可直接使用。
执行“mussh--help”命令即可获取mussh的详细用法,这里详细介绍mussh常用的一些参数及其含义和用法,如表所示。
三、mussh应用实例
mussh的使用方法与pssh、pdsh基本类似,在完成本地管理主机与远程多台主机之间的SSH认证之后,就可以使用mussh批量管理远程服务器了。首先看一个最简单的mussh应用实例,如图所示。
在这个例子中,主要使用了“-h”和“-c”参数(注意“-h”参数后面多台主机的写法),最后通过“-c”参数指定了在远程主机上要执行的命令,当需要执行多个命令时,每个命令之间用分号分隔。
当需要管理的远程主机较多时,可以将所有主机名或IP地址写到一个文件中,然后通过mussh的“-H”参数调用即可,如图所示。
这个例子用到了“-H”和“-l”两个参数,“-H”参数用来指定需要读取的主机列表文件,“-l”参数指定在远程主机上执行命令的用户为opsuser。
如果需要在远程主机上执行的命令较多,一个一个地执行mussh命令就会变得比较烦琐,此时可以将要执行的所有命令写到一个脚本文件中,然后通过mussh的“-C”参数调用即可,如图所示。
这个例子用到了“-o”、“-s”和“-C”三个新参数,如果远程主机开放的ssh端口不是默认的22,那么需要通过mussh提供的“-o”参数来指定ssh的端口,这实际上是通过“-o”参数调用ssh服务配置文件ssh_config中的参数选项。在执行一个本地脚本时,可以通过“-
C”参数实现,这个脚本可以是shell脚本、Python脚本、Perl脚本等,只要远程服务器上有这个执行环境就行,如果远程服务器上的脚本执行路径不是默认的,那么需要通过“-s”参数指定执行脚本需要的shell路径。
至此,mussh的用法基本介绍完毕了。
网友评论