昨天的一篇文章,,也收到了不少朋友的反馈,其中有个朋友提议说还是用pssh吧,我想想也是。

对于pssh早有耳闻,但是一直没有尝试用过。自己体验了一番,感觉确实不错,对于我们日常碰到的批量操作都可以胜任。当然还有很多可选方式,比如pgm,fabric,puppet,ansible等,只要能实现需求,怎么玩都是套路,而且也急不得,一个学明白了学其他的就会容易很多。

关于pssh的p是什么含义,我和朋友还讨论过,到底是python还是parallel的意思,其实按照官网的意思是parallel,当然它是用python写的。查看官网目前较新的版本是2.3.1,可以参考如下链接:

下载得到的不是rpm包,而是一个tar.gz的包,解压以后,直接执行如下的命令即可完成安装的过程。

# python setup.py install

其实这个pssh还有很多附加的功能pscp,prsync,pslurp,pnuke等。

比如我们有几台服务器需要做一些相同的检查。

服务器列表我们提供一个文件test.txt

10.12.133.125

10.12.2.102

10.12.2.32

比如想批量查看主机名的情况,那么执行的结果如下:

# pssh -h test.txt  -i "hostname"

[1] 17:41:44 [SUCCESS] 10.12.133.125

newtest.oracle.com

[2] 17:41:44 [SUCCESS] 10.12.2.102

bill_10.12.2.102_sx

[3] 17:41:44 [SUCCESS] 10.12.2.32

snewtest2.oracle.com

如果想先显示结果再显示检测情况,可以使用-P选项。

# pssh -h test.txt  -P "hostname"

10.12.133.125: newtest.oracle.com

[1] 17:42:08 [SUCCESS] 10.12.133.125

10.12.2.102: bill_10.12.2.102_sx

[2] 17:42:08 [SUCCESS] 10.12.2.102

10.12.2.32: snewtest2.oracle.com

[3] 17:42:08 [SUCCESS] 10.12.2.32

当然这只是开始,比如想查看一下服务器的uptime情况,超时时间为10秒,对于那些服务器访问不通的情况,情况就会大大改善。

# pssh -h test.txt -t 10  -i uptime

如果服务器有100台,使用如上的方式就会瞬间导致服务器的进程数暴增,如果成千上万台服务器,后果不堪设想,其实我们想让这个过程更平滑一下,那就是使用-p选项,指定并行进程数,比如指定并行进程数为20个,这样就是一个动态控制的过程。

# pssh -h test.txt -t 10 -p 20 -i uptime

如果服务器不算太多,可以使用传入变量的方式,而不适用IP列表。

#  pssh -H "10.12.133.125 10.12.2.32" -i uptime

[1] 23:22:35 [SUCCESS] 10.12.133.125

23:19:59 up 268 days,  6:53,  0 users,  load average: 0.07, 0.10, 0.28

[2] 23:22:35 [SUCCESS] 10.12.2.32

23:04:38 up 220 days,  8:43,  1 user,  load average: 0.22, 0.24, 0.25

大体的使用情况就是上面这样,基本达到的效果就是一个服务器能够通过ssh操作,那么放大到100台,1000台,从客户端来说操作复杂度没有太大的差别。

pssh这个工具蛮有意思,在安装的目录下有个AUTHORS的文件,作者是两个。

# less AUTHORS

Andrew McNabb

Brent Chun

而我自己也简单看了下pssh的实现代码,说实话,python还是小白,但是从Java学习的基础来看,有些代码大体还是能基本看懂,代码不是很长,所以我打印出来准备抽空好好看看。

pssh的核心部分有几个文件,pssh和几个库文件,manage.py,task.py,psshutil.py,还有辅助的cli.py,color.py,askpass_client.py,askpass_server.py

简单总结了下,Andrew写了不少的内容,而且近些年的维护都是他。

# Copyright (c) 2009-2012, Andrew McNabb

manager.py

task.py

askpass_client.py

askpass_server.py

而早期的时候更多的内容是Brent来做,2009年左右交接给了Andrew,所以会看到共同作者。

# Copyright (c) 2009-2012, Andrew McNabb

# Copyright (c) 2003-2008, Brent N. Chun

psshutil.py

color.py

cli.py       可见一个开源的项目能够健康发展至今,还是离不开很多默默奉献的人。

这就印证了一句话:

想要走得快,请独行;要想走得远,请结伴而行

pssh Oracle,需要了解的pssh(r11笔记第28天)相关推荐

  1. oracle12cr2发布时间,Oracle 12cR2初体验(r11笔记第91天)

    对于很多Oracle DBA来说,12c最期待人心的就是12c Release 2的发布了,而Linux64位版本的发布则是一个重头戏.详情可以关注公众号dbaplus来了解一下,今晚零点即将发布,可 ...

  2. 一个SQL性能问题的优化探索(二)(r11笔记第38天)

    继续前几天的一个案例一个SQL性能问题的优化探索(一)(r11笔记第33天) 如下的SQL语句存在索引字段CARD_NO,但是执行的时候却走了全表扫描,因为这是一个核心表,数据量很大,导致数据库负载很 ...

  3. oracle protocol=beq 不可用,学习笔记:Oracle数据库坏块 深入研究obj$坏块导致exp/expdp不能执行原因...

    天萃荷净 深入研究Oracle坏块obj$导致exp/expdp不能执行导出的原因 上篇(案例:Oracle出现obj$坏块exp/expdp导出不能导出的解决办法ORA-01578 ORA-0111 ...

  4. oracle修改asm参数文件,学习笔记:Oracle RAC参数文件管理 修改创建asm中的spfile文件...

    天萃荷净 Oracle rac创建修改asm中的spfile文件内容 create spfile to asm --查看sid SQL> show parameter instance_name ...

  5. oracle表和对象基础维护笔记

    一 oracle表和对象基础维护笔记 1.1 常见概念 1.2 创建表 1.3 表常见字段 1.4 增加或删除字段 1.5 更新字段 1.6 重命名表 1.7 改变表存储表空间和存储参数 1.8 删除 ...

  6. 百倍性能的PL/SQL优化案例(r11笔记第13天)

    我相信你是被百倍性能的字样吸引了,不过我所想侧重的是优化的思路,这个比优化技巧更重要,而结果嘛,其实我不希望说成是百倍提升,""自黑""一下. 有一个真实想法和 ...

  7. oracle in查询 一直等待,学习笔记:Oracle awr 分析解决inactive transaction branch等待事件...

    天萃荷净 通过Oracle AWR报告分析inactive transaction branch等待事件的原因 分析一份awr,发现不太熟悉的等待事件"inactive transactio ...

  8. oracle中overwrite写法,【学习笔记】Oracle 11G新特性restart的深入研究案例

    [学习笔记]Oracle 11G新特性restart的深入研究案例 时间:2016-11-26 22:35   来源:Oracle研究中心   作者:网络   点击: 次 天萃荷净 Oracle研究中 ...

  9. oracle访问控制策略查看,【学习笔记】oracle fga 细粒度访问控制研究笔记

    天萃荷净 oracle研究中心学习笔记:分享一篇关于Oracle数据库细粒度访问控制的学习笔记,详细介绍了Implement fine-grained access control (Fine-Gra ...

最新文章

  1. ASP网络编程从入门到精通 下载
  2. Codevs2822 爱在心中
  3. 开源 python_8款Python GUI开源框架,谁才是你的最爱?
  4. MYSQL MVCC实现及其机制
  5. 依赖注入的威力,.NET Core的魅力:解决MVC视图中的中文被html编码的问题
  6. python中为什么没有自增或者自减
  7. 如何尽量规避XSS(跨站点脚本)攻击
  8. ijkplayer之.so文件编译过程
  9. dubbo源码解析之dubbo配置解析
  10. 小米青春版路由器解锁root与SSH方法
  11. ESP8266最小系统
  12. java判断某个日期是当年内第几周
  13. 汉码科技仓储管理信息化解决方案,助力生产企业提升仓储管理水平,提升企业竞争力,提升产品形象
  14. Kubernetes监控在小米的落地
  15. CET6 2017.12.2
  16. mysql explain type_MySQL explain type详解
  17. 怎么判断机械表上满弦_机械表发条怎么上满 这些条件要满足
  18. 仿迅雷播放器教程 -- 权威界面库对比 (8)
  19. 【艺术奖】自戕行为作品获英格·莫拉丝奖
  20. ESP Flash downloadtool 工具下载 bin 文件时的报错原因总结

热门文章

  1. html怎么渲染富文本,渲染-如何使项目视图在Q中渲染富文本(html)
  2. VS2019 创建C语言项目
  3. 我们普通大学生和国内一流大学的学生差距到底在哪里?
  4. 如何给WordPress页面(Page)和文章(Post)设置访问密码
  5. 腐烂国度计算机配置要求,《腐烂国度2》PC版配置要求公布 GTX960即可畅玩
  6. 资源之基础知识(一)
  7. 一名野生程序员的自我修养
  8. python docx 图片_如何从pythondocx段中获取图像(Inlineshape)
  9. 游戏推广运营的重要性
  10. julia系列8:交互界面