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