我们经常需要ssh到多个主机上执行相同的命令,为了提高效率,我们通常会自己写个脚本,循环遍历执行我们的命令,比如:

for host in `cat hosts.txt`;do
ssh username@$host cmd
done

采用这种方式的问题是:

  • 必须自己写脚本,且正确性没法保证。
  • 各个主机执行任务是串行的,必须前一台主机执行完毕后,下一台主机才能执行,难以实现并行执行。

我们可以使用parallel-ssh工具来实现并行ssh远程执行命令,它是一个python编写可以在多台服务器上执行命令的工具,同时支持拷贝文件,目标也是简化大量计算机的管理,项目地址:https://code.google.com/p/parallel-ssh/

pssh 包安装5个实用程序:parallel-sshparallel-scpparallel-slurpparallel-nukeparallel-rsync。每个实用程序都并行地操作多个主机。

  • parallel-ssh 在多个主机上并行地运行命令。
  • parallel-scp 把文件并行地复制到多个主机上。
  • parallel-rsync 通过 rsync 协议把文件高效地并行复制到多个主机上。
  • parallel-slurp 把文件并行地从多个远程主机复制到中心主机上。
  • parallel-nuke 并行地在多个远程主机上杀死进程。

使用它首先需要安装,ubuntu已经集成到软件包中,直接使用apt-get安装:

sudo apt-get install pssh

为了简便,设置以下alias:

alias pssh='parallel-ssh'
alias pscp='parallel-scp'

编写需要远程操作的host列表hosts.txt:

node1
node2
node3
...
node100

使用时需要指定用户名和输入用户密码(必须所有主机的用户和密码相同)以及远程主机列表,通过-l username选项指定用户名,使用-A选项指定需要输入密码,使用-h指定主机列表,比如在所有的主机执行uptime操作:

pssh -P -l foo -A -h hosts.txt uptime

若我们当前主机的登录名为fgp,且fgp能够免密码登录hosts.txt的所有主机,则可以省略用户名和密码。比如,所有的主机执行uptime操作,并打印结果:

pssh -P -h  hosts.txt uptime

主机太多了,把输出保存到文件中:

pssh -o uptime_result -h  hosts.txt uptime

传输本地文件到所有的主机中:

pscp -h hosts.txt local_file.txt ~/target_file.txt

以上是简单使用方法,掌握以上的这些操作足够完成我们大多数工作,提高工作效率。

LikeBe the first to like this

No labels Edit Labels

User icon: Add a picture of yourself

Write a comment…

使用并行ssh提高工作效率的更多相关文章

  1. 程序员提高工作效率的15个技巧【Facebook】

    程序员提高工作效率的15个技巧[Facebook] 作者: habadog 日期: 2015 年 02 月 13 日发表评论 (0)查看评论 程序员提高工作效率的15个技巧[Facebook] 1,D ...

  2. 线上操作使用tmux提高工作效率

    对于常常在线上操作的人来说有一种烦恼,就是在操作过程中,有事离开了一下,电脑自己主动睡眠了.然后网络断开连接.这时候任务就要又一次跑.非常烦恼. tmux能够解决问题. tmux能够看成虚拟屏幕,不受 ...

  3. Windows 下有什么软件能够极大地提高工作效率

    Windows 下有什么软件能够极大地提高工作效率?修改 可以推荐一些好的应用或者有趣的程序,能提升工作效率或者能让人眼前一亮的.修改 举报1 条评论 分享 • 邀请回答   按票数排序按时间排序 2 ...

  4. Android Studio in OSX 提高工作效率的快捷键

    前言 本篇文章参考了<倍数提高工作效率的Android Studio>一文,快捷键基于OS X系统. OS X Yosemite 10.10.5 Android Studio 1.3.1 ...

  5. 倍数提高工作效率的 Android Studio 奇技

    来源:JeremyHe 链接:http://zlv.me/posts/2015/07/13/14_android-studio-tips/ 这是从Philippe Breault的系列文章<An ...

  6. [转]倍数提高工作效率的 Android Studio 奇技

    转自:http://android.jobbole.com/81687/ 倍数提高工作效率的 Android Studio 奇技 2015/10/08 · 技术分享 · 4 评论· Android S ...

  7. 15款提高工作效率的 Web 项目管理工具

    在今天的快节奏的商业世界里,能够通过计划.组织.和管理资源池以及评估开发资源的模式来管理一个项目,是一个很艰巨的任务. 有很多现成的项目管理软件来帮助减轻项目管理的负担,并且他们几乎覆盖了所有类型的业 ...

  8. paip.提高工作效率--数据绑定到table原则和过程Angular js jquery实现

    paip.提高工作效率--数据绑定到table原理和流程Angular js  jquery实现 html #--keyword 1 #---原理和流程 1 #----jq实现的代码 1 #----- ...

  9. Vin码识别(车架号识别)技术,摆脱手动录入提高工作效率

    本文主题:Vin码识别(车架号识别)技术,摆脱手动录入提高工作效率 本文关键词:Vin码识别,汽车Vin码识别,车架号识别,汽车车架号识别,车代码识别,车代号识别 本文主旨:一.Vin码(车架号)在什 ...

随机推荐

  1. [NOIP模拟测试34]反思+题解

    不要陷入思维定势,如果长时间没有突破就要考虑更改大方向. 不要把简单问题复杂化. 做完的题就先放下,不管能拿多少分.不能过一段时间就回来调一下. $Solutions:$ A.次芝麻 因为$n+m$始 ...

  2. Jquery 实现回车键触发功能

    keyup,上抬键盘 .$(function(){ 方法一: $(document).keyup(function(event){ if(event.keyCode ==13){ alert(&quo ...

  3. postgresql的规则系统

    " class="wiz-editor-body wiz-readonly" contenteditable="false"> Postgres ...

  4. C#中Json转换主要使用的几种方法!

    这篇主要介绍2.4.第三种方法使用的比较局限,所以我没有深入学习. 第二种方法 我使用比较多的方式,这个方法是.NET内置的,使用起来比较方便 A.利用serializer获取json的泛型对象 利用 ...

  5. java获取字符串编码和转换字符串编码

    public class EncodingUtil { // 这里可以提供更多地编码格式,另外由于部分编码格式是一致的所以会返回 第一个匹配的编码格式 GBK 和 GB2312 public stat ...

  6. 简单了解Redis

    redis是什么 redis是一种支持key-value等多种数据结构的存储系统,可用于缓存,事件发布,消息队列等场景,支持多种数据类型 string.hash.list.set.zset.而且基于内 ...

  7. 100个常用js代码(转载)

    作者:小萧ovo链接:https://zhuanlan.zhihu.com/p/23076321来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. JavaScript定点 ...

  8. Spring Boot控制上传文件大小

    spring: http: multipart: max-file-size: 5MB max-request-size: 20MB

  9. vmware安装minimal centos报错/etc/rc5.d/s99local : line:25 : eject : command not found

    今天在用centos mini 版的时候创建虚拟机出现错误提示:vmware安装minimal centos报错/etc/rc5.d/s99local : line:25 : eject : comm ...

  10. 导出CSV格式

    import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype. ...