一、介绍
首先我们来了解下什么是pssh,它是干嘛用的?pssh是一个python编写可以在多台服务器上执行命令的工具,也可以实现文件复制。换而言之就是一个批量管理多台服务器的一个小工具。常常我们有这样的经历,就是需要在很多台主机上执行同一命令,在以前我们需要编写一个脚本,然后写一个循环,然后写上要执行的命令,感觉挺麻烦的,有了pssh这个工具,很多事情都不需要我们编写脚本去完成了,用pssh管理多台主机,就好像在自己主机上执行命令一样,我们不再编写脚本就可以实现管理多台主机。接下来我们来安装使用pssh吧
二、安装
yum安装
yum install -y pssh
查看版本
[root@localhost ~]# pssh --version
2.3.1
pssh命令
[root@localhost ~]# pssh --help
Usage: pssh [OPTIONS] command [...]
Options:
--version 展示版本信息
--help 展示帮助信息
-h HOST_FILE, --hosts=HOST_FILE 主机文件(每行 [user@]host[:port])
-H HOST_STRING, --host=HOST_STRING 主机地址(格式 "[user@]host[:port]")
-l USER, --user=USER 用户名(可选)
-p PAR, --par=PAR 最大并行线程数(可选)
-o OUTDIR, --outdir=OUTDIR 标准输出文件的输出目录(可选)
-e ERRDIR, --errdir=ERRDIR 错误输出文件的输出目录(可选)
-t TIMEOUT, --timeout=TIMEOUT 每个主机的超时时间(秒)(0 =无超时)(可选)
-O OPTION, --option=OPTION SSH选项(可选)
-v, --verbose 打开警告和诊断消息(可选)
-A, --askpass 要求输入密码(可选)
-x ARGS, --extra-args=ARGS 额外的命令行参数
-X ARG, --extra-arg=ARG 额外的命令行参数
-i, --inline 每个服务器内部处理信息输出
--inline-stdout 每个服务器的内联标准输出
-I, --send-input 从标准输入读取并作为输入发送到ssh
-P, --print 打印输出
Example: pssh -h hosts.txt -l irb2 -o /tmp/foo uptime
三、使用
1、首先要服务器之间配置免密钥登陆
安装ssh-keygen、ssh-copy-id
yum install -y ssh-keygen
yum install -y ssh-copy-id
生成公钥
ssh-keygen 加两次回车
将公钥文件发送到指定的服务器
ssh-copy-id 192.168.1.171
ssh-copy-id 192.168.1.172
2、创建一个服务器列表文件
vim iplist
内容格式[user@]host[:port]
root@192.168.1.171
root@192.168.1.172
3、输入命令测试
在这两台主机上生成test文件内容为123
[root@localhost ~]# pssh -h iplist 'echo 123 > test'
[1] 14:48:45 [SUCCESS] root@192.168.1.171
[2] 14:48:45 [SUCCESS] root@192.168.1.172
执行成功后在这两台主机上会生成test文件