使用pssh进行并行批量操作

假如同时给上千台服务器执行一个命令,拷贝一个文件,杀一个进程等,有什么简化运维管理的工具呢?在小型使用中我都是使用for循 环,数量巨大,一方面不确定操作是否成功,一方面for循环语句性能不好估计且是不是同步并行执行.,这类工具比如 pdsh,mussh,cssh,dsh等还有这里提到的pssh:pssh是一个简单的字符界面并发向多个服务器发送指令进行执行的工具。适合一次性向集群大量服务器发送相同指令(并观察输出)

1. 安装

a. 到google code找到最新的安装包

http://code.google.com/p/parallel-ssh/downloads/list

Bash代码

  1. $ wget http://parallel-ssh.googlecode.com/files/pssh-2.3.1.tar.gz

pssh是python写的,因此下载之后解压,安装python安装模块的方式安装

Bash代码  

  1. $ tar -xf pssh-2.3.1.tar.gz
  2. $ cd pssh-2.3.1
  3. # python setup.py install

2. 使用(假设已经做完ssh免登陆)

创建一个hosts.txt文件,将要远程管理的机器加入

Bash代码  

  1. [[email protected] script]# cat test.txt
  2. 192.168.9.102
  3. 192.168.9.104
  4. 192.168.8.171

pssh工具包主要有5个程序:
1 pssh  多主机并行运行命令

[[email protected] pssh-2.2.2]# pssh -P -h test.txt uptime
192.168.9.102:  14:04:58 up 26 days, 17:05,  0 users,  load average: 0.07, 0.02, 0.00
192.168.9.102: [1] 14:04:58 [SUCCESS] 192.168.9.102 9922
192.168.8.171:  14:04:59 up 35 days,  2:01,  6 users,  load average: 0.00, 0.00, 0.00
192.168.8.171: [2] 14:04:59 [SUCCESS] 192.168.8.171 22
192.168.9.104:  14:04:59 up 7 days, 20:59,  0 users,  load average: 0.10, 0.04, 0.01
192.168.9.104: [3] 14:04:59 [SUCCESS] 192.168.9.104 9922
[[email protected] pssh-2.2.2]# cat test.txt
192.168.9.102:9922
192.168.9.104:9922
192.168.8.171:22   //注意我的端口号不仅是默认的22
假如想将输出重定向到一个文件 加-o file 选项

2 pscp  把文件并行地复制到多个主机上
注意 是从服务器端给客户端传送文件:

[[email protected] pssh-2.2.2]# pscp -h test.txt /etc/sysconfig/network /tmp/network   //标示将本地的/etc/sysconfig/network传到目标服务器的/tmp/network

3 prsync 使用rsync协议从本地计算机同步到远程主机

[[email protected] ~]# pssh -h test.txt -P mkdir /tmp/etc
[[email protected] ~]# prsync -h test.txt -l dongwm -a -r /etc/sysconfig /tmp/etc //标示将本地的/etc/sysconfig目录递归同步到目标服务器的 /tmp/etc目录下,并保持原来的时间戳,使用用户 dongwm

4  pslurp 将文件从远程主机复制到本地,和pscp方向相反:

[[email protected] ~]# pslurp -h test.txt   -L /tmp/test -l root /tmp/network test  //标示将目标服务器的/tmp/network文件复制到本地的/tmp/test目录下,并更名为test
[1] 14:53:54 [SUCCESS] 192.168.9.102 9922
[2] 14:53:54 [SUCCESS] 192.168.9.104 9922
[[email protected] ~]# ll /tmp/test/192.168.9.10
192.168.9.102/ 192.168.9.104/
[[email protected] ~]# ll /tmp/test/192.168.9.102/
总计 4.0K
-rw-r--r-- 1 root root 60 2011-04-22 14:53 test
[[email protected] ~]# ll /tmp/test/192.168.9.104/
总计 4.0K
-rw-r--r-- 1 root root 60 2011-04-22 14:53 test

5  pnuke 并行在远程主机杀进程:

[[email protected] ~]# pnuke -h test.txt   syslog //杀死目标服务器的syslog进程,只要ps进程中出现相关词语 都能杀死
[1] 15:05:14 [SUCCESS] 192.168.9.102 9922
[2] 15:05:14 [SUCCESS] 192.168.9.104 9922

时间: 2024-10-10 01:32:23

使用pssh进行并行批量操作的相关文章

(二 )VMware workstation 部署虚拟集群实践——并行批量操作环境部署

在上一篇博客中,已经介绍了安装虚拟集群的过程和需要注意的细节问题. 这篇主要是介绍如何批量登陆远程主机和配置,这个过程中是在没有部署并行处理工具或者集群管理工具的前进行的. ------------首次登陆-------------- 首次登陆需要解决的问题就是: 1,信任远程主机公钥的问题,也就是key_word:yes/no? 2,然后就是远程主机的密码,key_word:password: 在自动化部署过程中,需要进行免交互和免密码登陆. 1,使用expect编写免交互登陆脚本(适用于te

PSSH的安装和简单操作

PSSH是一个批量操作服务器的软件,当运维人员负责一个服务器集群的时候,面对二三十台服务器的时候,先把这些服务器的ip们都写进一个文档里,然后使用pssh 搭配这个文档,就能一口气的同时操作这二三十台机器,省事又省力,真是居家旅行节省体力的运维必需品. 安装 pssh是在python的基础上编写出来的脚本命令,所以python是操作pssh的基础,现在的linux和mac os都自带python,虽然自带的是python的版本是2.6.6但是也已经够用了. #wget ftp://ftp.fre

自动化运维利器---pssh

有的公司,机房有60台服务器,有的公司机房有3000台服务器,还有的更多!这么多的服务器,要执行相同的系统配置操作,怎么办? 答案1:   一台一台的部署,有点活活累死的感觉! 答案2:  写SHELL脚本,一回车,全部机器就都执行了.是个办法,但是效率很低,不是吗?! 答案3 :    用pssh,它是运维利器啊! pssh:   parallel-ssh ,即并行ssh,是一个用Python编写的工具,作用就是并行在多台服务器上执行命令.比如,在晚上12:00 分这个时间,同时在3000台服

pssh使用

一:下载 wget ftp://ftp.cn.debian.org/gentoo/distfiles/pssh-2.3.1.tar.gz 二:本地主机和远程主机单向信任 1:准备一个单独的用户 useradd crazy su - crazy 2:在本地主机创建RSA密钥和公钥 mkdir ~/.ssh chmod 700 ~/.ssh 设置权限保障安全 cd .ssh/ ssh-keygen 创建一对公私玥 3:远程拷贝在远程的主机 ssh-copy-id [email protected]

java.util.stream 库简介

Java Stream简介 Java SE 8 中主要的新语言特性是拉姆达表达式.可以将拉姆达表达式想作一种匿名方法:像方法一样,拉姆达表达式具有带类型的参数.主体和返回类型.但真正的亮点不是拉姆达表达式本身,而是它们所实现的功能.拉姆达表达式使得将行为表达为数据变得很容易,从而使开发具有更强表达能力.更强大的库成为可能. Java SE 8 中引入的一个这样的库是 java.util.stream 包 (Streams),它有助于为各种数据来源上的可能的并行批量操作建立简明的.声明性的表达式.

深入解析和反思携程宕机事件【转自https://www.infoq.cn/】

宕机时间 2015 年 5 月 28 日 携程网宕机事件还在持续,截止 28 号晚上 8 点,携程首页还是指向一个静态页面,所有动态网页都访问不了.关于事故根源,网上众说纷纭.作为互联网运维老兵,尝试分析原因,谈谈我的看法. 宕机原因分析 网上有各种说法,有说是数据库数据和备份数据被物理删除的.也有说是各个节点的业务代码被删除,现在重新在部署.也有说是误操作,导致业务不可用,还有说是黑客攻击甚至是内部员工恶意破坏的. 先说一下最早传出来的"数据库物理删除",其实这个提法就很不专业,应该

Linux批量操作pssh工具

一.场景介绍:        同时给上千台服务器执行一个命令,拷贝一个文件,杀一个进程等,有什么简化运维管理的工具呢?在小型使用中我都是使用for循 环,数量巨大,一方面不确定操作是否成功,一方面for循环语句性能不好估计且是不是同步并行执行. 二.准备工作         1.下载软件包:https://pypi.python.org/pypi/pssh/2.3.1         2.解压pssh-2.3.1.tar.gz,并安装pssh工具 三.使用方法 用法:PSSH [选项]命令[-]

批量操作-pssh

一.使用背景 在大规模集群中,要实现对服务器的统一管理,比如监听网卡流量,统一给配置文件,kill进程,查看信息等操作时,可以有很多方法或工具来实现,可以使用脚本实现,可以使用诸如ansible之类的自动化管理工具:在这里,我们来说说pssh,这是一个python写的并行批量操作工具:诸如此类的工具还有 pdsh,mussh,cssh,dsh等. 二.使用前准备 在使用pssh之前需要在集群中建立公钥机,具体方法在 --> 公钥机 可在pssh官方网站获取http://www.theether.

自动化批量管理工具pssh - 运维小结

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