pssh:基于python编写,可在多台服务器上执行命令的工具,也可实现文件复 制,提供了基于ssh和scp的多个并行工具 项目:http://code.google.com/p/parallel-ssh/
pdsh:Parallel remote shell program,是一个多线程远程shell客户端,可以 并行执行多个远程主机上的命令。 pdsh可以使用几种不同的远程shell服务,包 括标准的“rsh”,Kerberos IV和ssh 项目: https://pdsh.googlecode.com/
mussh:Multihost SSH wrapper,是一个shell脚本,允许您使用一个命令在 多个主机上通过ssh执行命令或脚本。 mussh可使用ssh-agent和RSA / DSA密 钥,以减少输入密码 项目:http://www.sourceforge.net/projects/mussh
说明:以上工具都包含在EPEL源中,配置yum源可以参考这个博客:https://www.cnblogs.com/alexlv/p/15252346.html
一、安装pssh包
yum install pssh -y
pssh 工具
选项如下:
--version:查看版本
-h:主机文件列表,内容格式”[user@]host[:port]”
-H:主机字符串,内容格式”[user@]host[:port]”
-A:手动输入密码模式 -i:每个服务器内部处理信息输出
-l:登录使用的用户名 -p:并发的线程数【可选】
-o:输出的文件目录【可选】
-e:错误输出文件【可选】
-t:TIMEOUT 超时时间设置,0无限制【可选】
-O:SSH的选项
-P:打印出服务器返回信息
-v:详细模式
pssh 示例
-H指定IP地址 ;-A 密码验证,默认以当前用户;-i 打印执行结果在屏幕上
pssh -H "172.16.8.180" -A -i hostname
通过pssh批量关闭开启多台机器的selinux
-h:主机文件列表,内容格式(将需要控制的主机IP地址存放在文件中)
[11:14:31 root@localhost ~]#cat host.txt 192.168.1.6 192.168.1.7
[11:17:58 root@localhost ~]#pssh -h host.txt -A -i "sed -i 's/SELINUX=.*/SELINUX=enforcing/' /etc/selinux/config"
多台机器执行结果重定向到 本机的文件夹里
pssh -h host.txt -A -i -o /data/host.log hostname
多台机器重定向到 本机的文件,有几台机器就生成几个文件
pssh -h host.txt -i -A -o /data/ hostname
批量发送指令(指定用户)
pssh -H root@192.168.1.7 -i -A setenforce 1
将标准错误和标准正确重定向都保存至/app目录下
pssh -H 192.168.1.10 -o /app -e /app -i “hostname”
pscp.pssh
pscp.pssh功能是将本地文件批量复制到远程主机
pscp-pssh选项
-v 显示复制过程
-r 递归复制目录
将本地的/data/host.log/192.168.1.6 文件复制到/data/
pscp.pssh -A -H 192.168.1.6 /data/host.log/192.168.1.6 /data/
将本地的/data/host.log/192.168.1.6 文件复制到 host.txt 文件里IP对应主机的data上
pscp.pssh -A -h host.txt /data/host.log/192.168.1.6 /data/
将本地多个文件批量复制到/data/
pscp.pssh -A -H 192.168.1.6 /data/host.log/192.168.1.6 /data/host.log/192.168.1.7 /data/
将本地目录批量复制到/data/目录
pscp.pssh -A -H 192.168.1.6 -r /data/host.log/ /data/
pslurp命令
pslurp功能是将远程主机的文件批量复制到本地
pslurp选项
-L 指定从远程主机下载到本机的存储的目录,local是下载到本地后的名称
-r 递归复制目录
批量下载目标服务器的passwd文件至/data下,并更名为user
pslurp -A -H 192.168.1.6 -L /data /etc/passwd user
#在data下生成文件夹名为对应IP地址的文件夹下的user