一、使用背景
在大规模集群中,要实现对服务器的统一管理,比如监听网卡流量,统一给配置文件,kill进程,查看信息等操作时,可以有很多方法或工具来实现,可以使用脚本实现,可以使用诸如ansible之类的自动化管理工具;在这里,我们来说说pssh,这是一个python写的并行批量操作工具;诸如此类的工具还有 pdsh,mussh,cssh,dsh等。
二、使用前准备
在使用pssh之前需要在集群中建立公钥机,具体方法在 --> 公钥机
可在pssh官方网站获取http://www.theether.org/pssh/
官网提供了3种安装方式,src,源码编译,以及rpm包,这里为了方便使用rpm安装,同时,使用pssh需要python环境。
[root@iie-test ~]# wget http://www.theether.org/pssh/pssh-1.2.2-1.i386.rpm [root@iie-test ~]# yum install pssh-1.2.2-1.i386.rpm 已加载插件:fastestmirror, langpacks 正在检查 pssh-1.2.2-1.i386.rpm: pssh-1.2.2-1.i386 pssh-1.2.2-1.i386.rpm 将被安装 正在解决依赖关系 --> 正在检查事务 ---> 软件包 pssh.i386.0.1.2.2-1 将被 安装 --> 解决依赖关系完成 依赖关系解决 ===================================================================== Package 架构 版本 源 大小 ===================================================================== 正在安装: pssh i386 1.2.2-1 /pssh-1.2.2-1.i386 30 k 事务概要 ===================================================================== 安装 1 软件包 总计:30 k 安装大小:30 k Is this ok [y/d/N]: y Downloading packages: Running transaction check Running transaction test Transaction test succeeded Running transaction 正在安装 : pssh-1.2.2-1.i386 1/1 验证中 : pssh-1.2.2-1.i386 1/1 已安装: pssh.i386 0:1.2.2-1 完毕!
三、使用
pssh有五个组件,分别是
Parallel ssh (pssh)
Parallel scp (pscp)
Parallel rsync (prsync)
Parallel nuke (pnuke)
Parallel slurp (pslurp)
共有主要参数:
-h iplist:必备参数,后跟主机列表
-P:print,打印到屏幕
-v:显示详细信息
-o filename:后跟要输出到的文件
-t n:超时时间
-I:用户名
-e filename:错误输出
-p n :最大并行数量
pssh:批量并行操作
[root@iie-test ~]# pssh -h iplist.txt -t 3 -P "date" ""号中是要执行的命令,pssh因为是并行,速度超快,好用到谁用谁知道,实测1000台主机执行kill操作,2秒完成!
pscp:并行复制操作
-r:递归
[root@iie-test ~]# pscp -h iplist.txt /root/test/rc.local /etc/rc.local 这个是要将/root/test/rc.local复制给再iplist中的主机的/etc/rc.local。
prsync:使用rsync协议从本地同步远程主机
-a:存档
-z:压缩
-r:递归
[root@iie-test ~]# prsync -h iplist.txt /root/test/conf /home/prog/p.conf
pslurp:并行复制远端主机文件至本地,pscp的反方向
-L localdir:指明本地目录
-r:复制目录,递归
[root@iie-test ~]# pslurp -h iplist.txt -L /home/data /etc/issue
pnuke:并行kill进程
[root@iie-test ~]# pnuke -h iplist.txt start