1.PSSH简介

PSSH提供OpenSSH和相关工具的并行版本。包括pssh,pscp,prsync,pnuke和pslurp。该项目包括psshlib,可以在自定义应用程序中使用。
pssh是python写的可以并发在多台机器上批量执行命令的工具,它的用法可以媲美ansible的一些简单用法,执行起来速度比ansible快它支持文件并行复制,远程命令执行,杀掉远程主机上的进程等等。杀手锏是文件并行复制,,当进行再远程主机批量上传下载的时候,最好使用它。
项目地址: https://code.google.com/archive/p/parallel-ssh/

2.PSSH使用

2.1 安装PSSH

前提条件:注意需要安装 python 2.4 或以上版本

安装过程

2.2 安装完成

使用yum安装后,只能使用pssh,但是编译安装后会包括其他命令也安装了(pscp prsync pnuke pslurp)
pssh:在远程多台主机上并行运行命令

pscp :把文件并行复制到多台远程主机上

prsync:使用rsync协议本地文件同步到远程多台主机上。

pnuke:在远程多台主机上并行killall某一进程

pslurp:把文件从远程多台主机上复制到本地主机上

2.3 pssh参数说明

-h HOST_FILE 后边跟远程主机列表(ip)
-H HOST_STRING 后边跟远程主机名或者ip地址
-l USER 指定远程主机的用户名-p PAR 指定pssh最大的并行线程数。
-o 将输出的内容重定向到一个指定的文件中
-O 指定ssh参数的具体配置
-e 将执行错误重定向到一个指定的文件中
-t 设定命令执行超时时间
-x 传递ssh命令的一些参数
-i 在远程主机上执行命令完成后显示标准输出和标准错误
-P 在执行远程命令时,输出执行结果

2.4 其他常用的方法

pssh使用帮助

pssh查看所有服务器的uptime

使用pscp向一堆机器分发文件

从一堆机器中拷贝文件到中心机器

2.5 常见问题

如果你遇到这样的错误:

建议升级python版本到python2.7

3.附录

3.1 pssh CLSN站点镜像地址

本站将pssh软件包镜像到本地,以防丢失,有需求的可以执行下载,下载后注意校验MD5值。

  <td rowspan="1" colSpan="1">
    <div data-type="alignment" data-value="center" style="text-align:center">
      <div data-type="p">
        Summary + Labels
      </div></p>
    </div>
  </td>
  
  <td rowspan="1" colSpan="1">
    <div data-type="alignment" data-value="center" style="text-align:center">
      <div data-type="p">
        Uploaded
      </div></p>
    </div>
  </td>
  
  <td rowspan="1" colSpan="1">
    <div data-type="alignment" data-value="center" style="text-align:center">
      <div data-type="p">
        Size
      </div></p>
    </div>
  </td>
</tr>

<tr height="34px">
  <td rowspan="1" colSpan="1">
    <div data-type="p">
      <a target="_blank" rel="noopener noreferrer nofollow" href="https://clsn.io/files/pssh/pssh-2.3.1.tar.gz" class="bi-link">pssh-2.3.1.tar.gz</a>
    </div>
  </td>
  
  <td rowspan="1" colSpan="1">
    <div data-type="p">
      PSSH 2.3.1 Source
    </div>
  </td>
  
  <td rowspan="1" colSpan="1">
    <div data-type="p">
      Feb 3, 2012
    </div>
  </td>
  
  <td rowspan="1" colSpan="1">
    <div data-type="p">
      22.88KB
    </div>
  </td>
</tr>

<tr height="34px">
  <td rowspan="1" colSpan="1">
    <div data-type="p">
      <a target="_blank" rel="noopener noreferrer nofollow" href="https://clsn.io/files/pssh/pssh-2.3.tar.gz" class="bi-link">pssh-2.3.tar.gz</a>
    </div>
  </td>
  
  <td rowspan="1" colSpan="1">
    <div data-type="p">
      PSSH 2.3 Source
    </div>
  </td>
  
  <td rowspan="1" colSpan="1">
    <div data-type="p">
      Jan 25, 2012
    </div>
  </td>
  
  <td rowspan="1" colSpan="1">
    <div data-type="p">
      21.62KB
    </div>
  </td>
</tr>

<tr height="34px">
  <td rowspan="1" colSpan="1">
    <div data-type="p">
      <a target="_blank" rel="noopener noreferrer nofollow" href="https://clsn.io/files/pssh/pssh-2.2.2.tar.gz" class="bi-link">pssh-2.2.2.tar.gz</a>
    </div>
  </td>
  
  <td rowspan="1" colSpan="1">
    <div data-type="p">
      PSSH 2.2.2 Source
    </div>
  </td>
  
  <td rowspan="1" colSpan="1">
    <div data-type="p">
      Feb 3, 2011
    </div>
  </td>
  
  <td rowspan="1" colSpan="1">
    <div data-type="p">
      20.94KB
    </div>
  </td>
</tr>

<tr height="34px">
  <td rowspan="1" colSpan="1">
    <div data-type="p">
      <a target="_blank" rel="noopener noreferrer nofollow" href="https://clsn.io/files/pssh/pssh-2.2.1.tar.gz" class="bi-link">pssh-2.2.1.tar.gz</a>
    </div>
  </td>
  
  <td rowspan="1" colSpan="1">
    <div data-type="p">
      PSSH 2.2.1 Source
    </div>
  </td>
  
  <td rowspan="1" colSpan="1">
    <div data-type="p">
      Jan 27, 2011
    </div>
  </td>
  
  <td rowspan="1" colSpan="1">
    <div data-type="p">
      20.88KB
    </div>
  </td>
</tr>

<tr height="34px">
  <td rowspan="1" colSpan="1">
    <div data-type="p">
      <a target="_blank" rel="noopener noreferrer nofollow" href="https://clsn.io/files/pssh/pssh-2.2.tar.gz" class="bi-link">pssh-2.2.tar.gz</a>
    </div>
  </td>
  
  <td rowspan="1" colSpan="1">
    <div data-type="p">
      PSSH 2.2 Source
    </div>
  </td>
  
  <td rowspan="1" colSpan="1">
    <div data-type="p">
      Jan 27, 2011
    </div>
  </td>
  
  <td rowspan="1" colSpan="1">
    <div data-type="p">
      20.84KB
    </div>
  </td>
</tr>

<tr height="34px">
  <td rowspan="1" colSpan="1">
    <div data-type="p">
      <a target="_blank" rel="noopener noreferrer nofollow" href="https://clsn.io/files/pssh/pssh-2.1.1.tar.gz" class="bi-link">pssh-2.1.1.tar.gz</a>
    </div>
  </td>
  
  <td rowspan="1" colSpan="1">
    <div data-type="p">
      PSSH 2.1.1 Source
    </div>
  </td>
  
  <td rowspan="1" colSpan="1">
    <div data-type="p">
      Mar 5, 2010
    </div>
  </td>
  
  <td rowspan="1" colSpan="1">
    <div data-type="p">
      17.94KB
    </div>
  </td>
</tr>

<tr height="34px">
  <td rowspan="1" colSpan="1">
    <div data-type="p">
      <a target="_blank" rel="noopener noreferrer nofollow" href="https://clsn.io/files/pssh/pssh-2.1.tar.gz" class="bi-link">pssh-2.1.tar.gz</a>
    </div>
  </td>
  
  <td rowspan="1" colSpan="1">
    <div data-type="p">
      PSSH 2.1 Source
    </div>
  </td>
  
  <td rowspan="1" colSpan="1">
    <div data-type="p">
      Feb 26, 2010
    </div>
  </td>
  
  <td rowspan="1" colSpan="1">
    <div data-type="p">
      17.65KB
    </div>
  </td>
</tr>

<tr height="34px">
  <td rowspan="1" colSpan="1">
    <div data-type="p">
      <a target="_blank" rel="noopener noreferrer nofollow" href="https://clsn.io/files/pssh/pssh-2.0.tar.gz" class="bi-link">pssh-2.0.tar.gz</a>
    </div>
  </td>
  
  <td rowspan="1" colSpan="1">
    <div data-type="p">
      PSSH 2.0 Source
    </div>
  </td>
  
  <td rowspan="1" colSpan="1">
    <div data-type="p">
      Oct 21, 2009
    </div>
  </td>
  
  <td rowspan="1" colSpan="1">
    <div data-type="p">
      15.03KB
    </div>
  </td>
</tr>

3.2 pssh GOOGLE源

File Summary + Labels Uploaded Size
pssh-2.3.1.tar.gz​ PSSH 2.3.1 Source Feb 3, 2012 22.88KB
​pssh-2.3.tar.gz​ PSSH 2.3 Source Jan 25, 2012 21.62KB
​pssh-2.2.2.tar.gz​ PSSH 2.2.2 Source Feb 3, 2011 20.94KB
​pssh-2.2.1.tar.gz​ PSSH 2.2.1 Source Jan 27, 2011 20.88KB
pssh-2.2.tar.gz​ PSSH 2.2 Source Jan 27, 2011 20.84KB
​pssh-2.1.1.tar.gz​ PSSH 2.1.1 Source Mar 5, 2010 17.94KB
​pssh-2.1.tar.gz​ PSSH 2.1 Source Feb 26, 2010 17.65KB
​pssh-2.0.tar.gz​ PSSH 2.0 Source Oct 21, 2009 15.03KB

3.3 文件包MD5值

下载完成后务必校验MD5值

MD5值 文件名
dbdbfda5681b82d4c64abdb3668e88bc pssh-2.3.tar.gz
53e70d53064f658bf8f44880340e8e5c pssh-2.3.1.tar.gz
689207677b260a7e4178174295b1389e pssh-2.2.tar.gz
865305ae39647884bc54a42e9f9554bb pssh-2.2.2.tar.gz
f7583259976ef64bf3cae957a0b66e41 pssh-2.2.1.tar.gz
725f902bb7e128cc7aa1322551f7ca37 pssh-2.1.tar.gz
4b355966da91850ac530f035f7404cd5 pssh-2.1.1.tar.gz
07474f9f9dbefedc809e997f04e1dee5 pssh-2.0.tar.gz

4.参考文献

https://code.google.com/archive/p/parallel-ssh/
http://opstool.com/article/266
https://www.cnblogs.com/Dicky-Zhang/p/5988415.html
https://help.aliyun.com/knowledge_detail/38835.html

<li>
  <a href="#3">3.附录</a><ul>
    <li>
      <a href="#31_pssh_CLSN">3.1 pssh CLSN站点镜像地址</a>
    </li>
    <li>
      <a href="#32_pssh_GOOGLE">3.2 pssh GOOGLE源</a>
    </li>
    <li>
      <a href="#33_MD5">3.3 文件包MD5值</a>
    </li>
    <li>
      <a href="#4">4.参考文献</a>
    </li>
  </ul>
</li>