PSSH 的意思是 Parallel SSH,并行的SSH,很好理解,PSSH 可以让一条命令在多个服务器上同时执行
这就简化了集群的管理工作,例如想查看一下各台服务器现在的负载状况,就可以通过 PSSH 在所有服务器上执行 w 命令
pssh -h hostlist -i w
其中的 hostlist 是一个自定义的文本文件,里面记录着服务器列表信息
// hostlist
root@192.168.31.207:22
root@192.168.31.158:22
PSSH 示例
pssh 是最基本的命令,PSSH 还提供了其他方便的命令,下面看几个示例
- 从本地拷贝文件到各个服务器
例如 把本机的 /root/fileA 拷贝到各个服务器的 /tmp/fileA
pscp -h hostlist /root/fileA /tmp/fileA
- 从各个服务器拷贝文件到本机
例如各服务器中都有文件 /home/err_log,想把他们都拿到本机查看,放到本机的 /tmp/test 目录下,并改名为 log
pslurp -h hostlist -L /tmp/test /home/err_log log
到 /tmp/test 下查看
- 同步目录
例如本机有一个文件夹 /tmp/test,其中有子目录和文件,想把这个文件夹同步到各服务器的 /home 下
prsync -h hostlist -a -r /tmp/test /home
执行完成后,到服务器中查看是否同步成功
PSSH 安装
- 下载
https://pypi.python.org/packages/source/p/pssh/pssh-2.3.1.tar.gz
- 解压
tar xzvf pssh-2.3.1.tar.gz
- 安装
cd pssh-2.3.1
python setup.py install
- 测试
pssh --help
输出帮助信息,说明安装成功
对 192.168.31.207 这台服务器执行 date 命令来测试一下
pssh -H root@192.168.31.207 -A -i date
输入密码后,就显示出了 date 命令的执行结果
- 配置 SSH 免密码
如果每次都需要输入密码的话,就很麻烦了,可以对各台服务器配置免密码
在本机执行
ssh-keygen
(执行后会有多个输入提示,不用输入任何内容,全部直接回车即可)
ssh-copy-id -i /root/.ssh/id_rsa -p 22 root@192.168.31.207
(重复执行这条命令,改变后面的服务器信息即可)
再次执行 pssh 命令,就不会提示输入密码了
pssh -H root@192.168.31.207 -i date
PSSH 非常简单,但为我们的服务器管理工作提供了很大的便利,从安装到用起来都花费不了1小时,轻便好用