八亿电脑网
游戏盒子
当前位置: 首页 > 八亿电脑 > 电脑知识 >

linux批量管理推送工具mussh和pssh介绍

时间:2015-03-19 10:41来源:网络 作者:win8e 点击:
游戏盒子

mussh 是shell开发的一个小工具,pssh是python开发的一个用来批量管理linux主机的工具,现在我们来介绍mussh和pssh的使用方法。

先说下mussh,mussh 是shell开发的一个小工具,刚学习运维和shell的朋友可以拿来锻炼下,做个工具的二次开发。


[root@devops-ruifengyun ~ ]$ apt-get install mussh

正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
下列软件包是自动安装的并且现在不需要了:
kde-l10n-engb kde-l10n-zhcn libffi6:i386 libglib2.0-0:i386
libsystemd-daemon0:i386 libudev1:i386 python-async python-git python-gitdb
python-smmap
Use 'apt-get autoremove' to remove them.
下列【新】软件包将被安装:
mussh
升级了 0 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 205 个软件包未被升级。
需要下载 14.4 kB 的软件包。
解压缩后会消耗掉 71.7 kB 的额外空间。
获取:1 http://mirrors.oschina.net/ubuntu/ saucy/universe mussh all 1.0-1 [14.4 kB]
下载 14.4 kB,耗时 0秒 (30.3 kB/s)
Selecting previously unselected package mussh.
(正在读取数据库... 系统当前共安装有 234998 个文件和目录。)
正在解压缩 mussh (从 .../archives/mussh_1.0-1_all.deb) ...
正在处理用于 man-db 的触发器...
正在设置 mussh (1.0-1) ...
[root@devops-ruifengyun ~ ]$
八亿电脑网


mussh的帮助,会看到他的帮助相当的简单。




咱们直接跑一个例子,首先需要把对端的主机放到一个文件里面。然后mussh 调用-H 识别主机的list列表。

[root@devops-ruifengyun ~ ]$

http://rfyiamcool.blog.51cto.com/

[root@devops-ruifengyun ~ ]$ cat mu.list

10.1.25.46

10.1.25.47

10.1.25.48

10.1.25.49

[root@devops-ruifengyun ~ ]$

[root@devops-ruifengyun ~ ]$

[root@devops-ruifengyun ~ ]$ mussh -H ./mu.list -c 'dir'

10.154.252.46: a.py install.log keepalived-1.2.12

10.154.252.46: epel-release-6-8.noarch.rpm install.log.syslog keepalived-1.2.12.tar.gz

10.154.252.47: install.log install.log.syslog keepalived-1.2.12 keepalived-1.2.12.tar.gz

10.154.252.48: install.log install.log.syslog rs.sh

10.154.252.49: install.log install.log.syslog rs.sh

[root@devops-ruifengyun ~ ]$

[root@devops-ruifengyun ~ ]$

八亿电脑网


测试他有没有并发的特性。


[root@devops-ruifengyun ~ ]$ time mussh -H ./mu.list -c 'sleep 3;dir'

10.154.252.46: a.py install.log keepalived-1.2.12

10.154.252.46: epel-release-6-8.noarch.rpm install.log.syslog keepalived-1.2.12.tar.gz

10.154.252.47: install.log install.log.syslog keepalived-1.2.12 keepalived-1.2.12.tar.gz

10.154.252.48: install.log install.log.syslog rs.sh

10.154.252.49: install.log install.log.syslog rs.sh

mussh -H ./mu.list -c 'sleep 3;dir' 0.04s user 0.16s system 1% cpu 13.206 total

[root@devops-ruifengyun ~ ]$


果然没有并发执行。。。这也太不咋低了。


mussh支持发送脚本并执行的,在mussh的cli命令行 直接 -C 跟着脚本就可以了。


[root@devops-ruifengyun ~ ]$ time mussh -H ./mu.list -C c.sh

10.154.252.46: a.py install.log keepalived-1.2.12

10.154.252.46: epel-release-6-8.noarch.rpm install.log.syslog keepalived-1.2.12.tar.gz

10.154.252.47: install.log install.log.syslog keepalived-1.2.12 keepalived-1.2.12.tar.gz

10.154.252.48: install.log install.log.syslog rs.sh

10.154.252.49: install.log install.log.syslog rs.sh

mussh -H ./mu.list -C c.sh 0.10s user 0.17s system 42% cpu 0.629 total

[root@devops-ruifengyun ~ ]$

[root@devops-ruifengyun ~ ]$

[root@devops-ruifengyun ~ ]$


咱们再来测试下pssh这个比mussh要高端的东西,pssh是python开发的一个用来批量管理linux主机的工具。


pssh相关参数


pssh在多个主机上并行地运行命令

-h 执行命令的远程主机列表,文件内容格式[user@]host[:port]

如 test@172.16.10.10:229

-H 执行命令主机,主机格式 user@ip:port

-l 远程机器的用户名

-p 一次最大允许多少连接

-P 执行时输出执行信息

-o 输出内容重定向到一个文件

-e 执行错误重定向到一个文件

-t 设置命令执行超时时间

-A 提示输入密码并且把密码传递给ssh(如果私钥也有密码也用这个参数)

本篇文章标签: 教程 Win10 win7 软件 Win8
发表评论