多服务器操作利器 - Polysh
多台服务器下的痛苦人生
分布式架构下的系统,可以说每个服务都是分别部署在多台服务器上的,有的甚至还需要多机房,在这种架构下可以说可以很好的做到了易扩展、容灾等功能。推荐的服务部署为一服务多机器、一机器一服务、多机器多机房,上线之前做好压测,留有一定的水位线。以此作为此类服务的容量配置标准,服务压力上涨之后,按标准配置加机器即可,这是目前我们系统服务部署原则。
那么问题来了?这么多服务多机器下,如何快速定位一个 Bug 呢?
例如我们定位到 bug 来自某一个服务,这时候这个服务后端有 5 台服务器做负载。常规操作是,我们依次登录到这 5 台服务器上去查询服务日志,定位该操作具体在哪一台执行,运气好的话,你登录的第一台就找到问题,如果你运气差的话,呵呵,你可能会查询了前 4 台的机器都没有找到问题,偏偏在最后一台机器上找到了问题原因。
当然,你可能会说,既然你们分布式架构了,为什么没有做集中日志处理?这个今天不重要,其实我们有日志中心的。
Polysh 是个什么鬼?
Polysh is a tool to aggregate several remote shells into one. It is
used to launch an interactive remote shell on many machines at once.
It is written in Python and requires Python ≥ 2.4.
官网简介的上面一段话很清楚了,它是用来在一台机器上可以连接多台机器后,然后一条命令可以发送到多台机器执行后并在这一台机器上显示结果。可以说就是分布式架构下,一个服务部署在多台机器下的运维必备利器。
Polysh 安装及配置
首先 python 版本要大于等于 2.4。
1. 登录机器,找到一个合适的文件目录
下载安装文件,解压文件。
wget http://guichaz.free.fr/polysh/files/polysh-0.4.tar.gz
tar -zxvf polysh-0.4.tar.gz

2. 进入解压后的文件目录,安装
cd polysh-0.4
python setup.py install --home=~/polysh
这里命令是安装 polysh 到当前用户的主目录。

3.添加 polysh 执行目录到环境变量
echo "export PATH=~/polysh/bin:$PATH" >> ~/.bash_profile
echo "export PYTHONPATH=~/polysh/lib/python/:$PYTHONPATH" >> ~/.bash_profile
或者你打开文件自行添加:vim ~/.bash_profile;
最后要执行如下命令要使配置生效:source ~/.bash_profile

到这里的话,我们安装就算完成了。当然你可以接着配置免密登录,这里不再演示,就是使用 ssh-keygen 的命令创建公钥,然后把公钥内容添加到目标机器。
Polysh 的使用
使用起来非常简单,直接输入你想登录到的线上机器名即可。
举个栗子:我们有十台机器,机器名分别为 mafly01、mafly02,到 mafly10 这样,输入 polysh 'mafly0{1,2}' 命令后,即可登录到服务所部署的 mafly01、mafly02 两台机器,然后可以像以前一样输入你想执行的命令即可,这时候就是操作两台服务器哦。
当然,polysh 支持多种登录姿势,全凭自己高兴,例如:
polysh mafly0{1,2}polysh mafly01 mafly03polysh 'mafly0<1-4>' gg-mafly01 gg-order01polysh gg-{mafly01,order01} mafly01

总结
有了这个利器后,对多个服务器的操作简直是流畅到不行,尤其是你的机器名特别长的情况下,你再也不用记复杂的机器名了,完全就是解放了自己。我就重新写了脚本,简化了机器名。
当然,对于机器特别多,超过五台以上就不建议使用了,还有对性能有影响的命令也不建议使用,最方便的场景可能就是查日志、看下磁盘、同步修改机器时间这些小操作。
多服务器操作利器 - Polysh的更多相关文章
- php的redis 操作类,适用于单台或多台、多组redis服务器操作
redis 操作类,包括单台或多台.多组redis服务器操作,适用于业务复杂.高性能要求的 php web 应用. redis.php: <?php /* redis 操作类,适用于单台或多台. ...
- SQL Server 跨服务器操作
Ø 简介 在工作中编写 SQL 时经常会遇到跨库或跨服务器操作,比如查询时,通过 A 服务器的某张表关联 B 服务器某张表,进行连接查询.或者从另一台服务器中的数据,对当前数据库中的数据进行 CRU ...
- 连接Linux服务器操作Oracle数据库
连接Linux服务器操作Oracle数据库 由于项目已经上线,现场的数据库服务器不允许直接用Oracle的客户端plsqldev.exe来连接,只能通过Linux服务器的命令来操作. 以下是用Se ...
- Redis服务器操作
[Redis服务器操作] 1.TIME 返回当前服务器时间. 2.DBSIZE 返回当前数据库的 key 的数量. 3.LASTSAVE 返回最近一次 Redis 成功将数据保存到磁盘上的时间,以 U ...
- 服务器操作nginx相关操作命令
服务器操作nginx相关操作命令 登录服务器: ssh root@0.0.0.0 -p 22100 启动nginx: /usr/local/nginx/sbin/nginx 查看nginx是否启动 p ...
- SQL Server跨服务器操作数据库
今天给大家来分享一下跨服务器操作数据库,还是以SQL Server的管理工具(SSMS)为平台进行操作. 什么是跨服务器操作? 跨服务器操作就是可以在本地连接到远程服务器上的数据库,可以在对方的数据库 ...
- 多服务器终端交互利器--polysh和atnodes到高逼格日志中心
最近博客更新的少了,相对而言,我在自己的个人公众号里还是挺活跃的,大家可以扫描旁边的二维码,或者微信搜索公众号:“编程一生”加关注. 在分布式的年代,一个应用需要部署到多台服务器上.那么要查看日志文件 ...
- ubuntun安装ssh,并远程链接服务器操作
SSH是一种以安全.加密方式连接远程主机或服务器的方法.SSH服务器接受从有SSH的客户机的连接,允许操作者象在本地一样地登录系统.你可以用SSH从远程运行shell和X程序. (1)安装SSH服务器 ...
- Java项目部署服务器操作
有 2个工具需要下载,我使用的是 xshell(操作Linux命令),xftp5(操作文件传输) 需要知道服务器 ip ,账号,密码 xshell连接时,协议选择SSH连接,其他正常输入. xftp5 ...
随机推荐
- 斐讯 FIR151M 频繁掉线(OpenWRT解决方案)
0. 现象与前言 在使用斐讯 FIR151M 路由器连接网络时,传输数据时频繁掉线. 官方固件刷了两个版本,问题未解决. 建议高级用户看本教程,要做好不能使用 Web 管理界面的心理准备. 1. 准备 ...
- ThreadPoolExecutor系列<一、ThreadPoolExecutor 机制>
本文系作者原创,转载请注明出处:http://www.cnblogs.com/further-further-further/p/7681529.html 解决问题: 1. 处理大量异步任务时能减少每 ...
- windows将某个应用加入开机启动项的解决办法
找到计算机以下位置,将要加入开机启动项的程序的快捷方式直接Copy到该目录下,下次开机该程序则会自动启动 C:\Users\pc\AppData\Roaming\Microsoft\Windows\S ...
- Centos7安装后出现please make your choice from '1' to e 解决方式
[输入"1",按Enter键 输入"2",按Enter键 输入"q",按Enter键 输入"yes",按 ...
- Centos7安装Python3的方法
由于centos7原本就安装了Python2,而且这个Python2不能被删除,因为有很多系统命令,比如yum都要用到. [root@VM_105_217_centos Python-]# pytho ...
- 在 ASP.NET Core 中使用 SignalR
https://weblogs.asp.net/ricardoperes/signalr-in-asp-net-core 作者:Ricardo Peres 译者:oopsguy.com 介绍 Sign ...
- Vue.js—快速入门
Vue.js是什么 Vue.js 是一套构建用户界面的渐进式框架.与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计.Vue 的核心库只关注视图层,它不仅易于上手,还便于与第三方库或既有项目 ...
- gops - Go语言程序查看和诊断工具
想必 Java 的开发者没有不知道或者没用过 jps 这个命令的,这个命令是用来在主机上查看有哪些 Java 程序在运行的. 我刚用 Go 语言程序的时候也很苦恼,我部署在公司服务器上的 Go 程序, ...
- HDFS--笔记
HDFS的简介 分布式的文件系统,基于流数据模式访问和处理超大文件的分布式文件系统 Hadoop Distributed File System HDFS的优点 处理超大文件 流数据访问 运行廉价的商 ...
- SQL查询多条不重复记录值简要解析【转载】
转载http://hi.baidu.com/my_favourate/item/3716b0cbe125f312505058eb SQL查询多条不重复记录值简要解析2008-02-28 11:36 以 ...