pssh批量管理服务器
pssh命令是一个python编写可以在多台服务器上执行命令的工具,同时支持拷贝文件,是同类工具中很出色的,类似pdsh,个人认为相对pdsh更为简便,使用必须在各个服务器上配置好密钥认证访问。
1. 安装
安装可以使用yum或者apt-get安装,还可以使用源码安装, 由于我使用apt-get安装不好用,所以这里我只说下源码安装
wget http://parallel-ssh.googlecode.com/files/pssh-2.3.1.tar.gz
tar xf pssh-2.3..tar.gz
cd pssh-2.3./
python setup.py install
2. pssh选项说明
--version:查看版本
--help:查看帮助,即此信息
-h:主机文件列表,内容格式”[user@]host[:port]”
-H:主机字符串,内容格式”[user@]host[:port]”
-l:登录使用的用户名
-p:并发的线程数【可选】
-o:输出的文件目录【可选】
-e:错误输入文件【可选】
-t:TIMEOUT 超时时间设置,0无限制【可选】
-O:SSH的选项
-v:详细模式
-A:手动输入密码模式
-x:额外的命令行参数使用空白符号,引号,反斜线处理
-X:额外的命令行参数,单个参数模式,同-x
-i:每个服务器内部处理信息输出
-P:打印出服务器返回信息
3. 实例
(1) 查看版本
#pssh --version
#2.3.
(2) 查看帮助
#pssh --help
Usage: pssh [OPTIONS] command [...] Options:
--version show program's version number and exit
--help show this help message and exit
-h HOST_FILE, --hosts=HOST_FILE
hosts file (each line "[user@]host[:port]")
-H HOST_STRING, --host=HOST_STRING
additional host entries ("[user@]host[:port]")
-l USER, --user=USER username (OPTIONAL)
-p PAR, --par=PAR max number of parallel threads (OPTIONAL)
-o OUTDIR, --outdir=OUTDIR
output directory for stdout files (OPTIONAL)
-e ERRDIR, --errdir=ERRDIR
output directory for stderr files (OPTIONAL)
-t TIMEOUT, --timeout=TIMEOUT
timeout (secs) ( = no timeout) per host (OPTIONAL)
-O OPTION, --option=OPTION
SSH option (OPTIONAL)
-v, --verbose turn on warning and diagnostic messages (OPTIONAL)
-A, --askpass Ask for a password (OPTIONAL)
-x ARGS, --extra-args=ARGS
Extra command-line arguments, with processing for
spaces, quotes, and backslashes
-X ARG, --extra-arg=ARG
Extra command-line argument
-i, --inline inline aggregated output and error for each server
--inline-stdout inline standard output for each server
-I, --send-input read from standard input and send as input to ssh
-P, --print print output as we get it Example: pssh -h hosts.txt -l irb2 -o /tmp/foo uptime
(3) 使用主机文件列表执行pwd命令
#pssh -h ip.txt -A -i pwd
Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password:
[] :: [SUCCESS] root@192.168.200.152
/root
[] :: [SUCCESS] root@192.168.200.154
/root
[] :: [SUCCESS] root@192.168.200.153
/root
[] :: [SUCCESS] root@192.168.200.155
/root
说明: -h 后面的ip是要操作的机器ip列表,格式如下: root@192.168.200.152 -A 表示手动输入密码模式 -i表示要执行的命令
(4) 使用主机文件列表执行date命令
#pssh -h ip.txt -A -i date
Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password:
[] :: [SUCCESS] root@192.168.200.152
2016年 07月 11日 星期一 :: CST
[] :: [SUCCESS] root@192.168.200.154
2016年 07月 11日 星期一 :: CST
[] :: [SUCCESS] root@192.168.200.153
2016年 07月 11日 星期一 :: CST
[] :: [SUCCESS] root@192.168.200.155
2016年 07月 11日 星期一 :: CST
(5) 指定用户名
#可以通过-l命令指定用户名
$pssh -h ip.txt -A -i -l root date
Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password:
[] :: [SUCCESS] 192.168.200.152
2016年 07月 11日 星期一 :: CST
[] :: [SUCCESS] 192.168.200.154
2016年 07月 11日 星期一 :: CST
[] :: [SUCCESS] 192.168.200.153
2016年 07月 11日 星期一 :: CST
[] :: [SUCCESS] 192.168.200.155
2016年 07月 11日 星期一 :: CST
(6) 批量初始化服务器key
#让远程服务自动在/root/.ssh生成秘钥,方便部署证书信任
pssh -h host1.txt -l root -A "ssh-keygen -t rsa -f /root/.ssh/id_rsa -P \"\""
(7)批量修改机器密码
pssh -h host.txt -l root -A 'echo root:xxxxxxxx | chpasswd'(8)
(8)pscp拷贝文件到远程主机
pscp -h ip.txt /etc/wenjian.txt /tmp/
(9)pnuke杀掉某一进程
这个命令类似yu killall命令
pnuke -h iplist.txt httpd
上边的意思是在远程主机上批量关闭httpd服务
能通过killall关闭的服务,都可以通过pnuke来批量完成
(10)pslurp 远程主机拷贝文件到本地主机
pslurp -h iplist.txt -L /home/ /hose/wenjian/yuanc.conf open.conf
上边是,将所有远程主机/hose/wenjian/yuanc.conf复制到本地主机/home/目录下,并且重新命名为open.conf -L 来指定本地文件路径
(11)拷贝目录
pslurp -h iplist.txt -r -L /home/ /hose/wenjian/ open
ps:建议分发文件,执行命令,批量杀死进程,使用pssh,pscp,pnuke,速度很快的
4. 介绍软件包内其他命令
# 通过pscp对多个机器传文件,把test.sh传送到多个机器上
$ pscp.pssh -h host.txt -l root -A test.sh 使用pscp对多个机器传文件,然后再通过pssh执行脚本,方便快捷
场景:目标命令中含有特殊符号,导致pssh批量执行可能出问题。
用法:
pssh -h ip.txt -i -I < /datas/.sh
pssh -h RemoteHosts.ip -P -I < ~/LocalScript.sh
6.pssh工具包主要有5个程序:
(假设ssh已做好SSH信任,如果没有的话会要求输入密码关于ssh信任可以参考http://be-evil.org/linux-ssh-login-without-using-password.html)
pssh 多主机并行运行命令 pscp 传输文件到多个hosts,他的特性和scp差不多 pslurp 从多台远程机器拷贝文件 pnuke kill远程机器的进程 pslurp 从远程主机考本文件到本地 prsync 使用rsync协议从本地计算机同步到远程主机
7.prsync 使用rsync协议从本地计算机同步到远程主机
[root@centos pssh-2.3]# prsync -h host.txt -l root -a -r /etc/sysconfig /tmp/
[] :: [SUCCESS] 192.168.1.199
表示将本地的/etc/sysconfig目录递归同步到目标服务器的 /tmp/目录下,并保持原来的时间戳,使用用户 root
8.pnuke 并行在远程主机杀进程:(慎用)
[root@centos pssh-2.3]# pnuke -h host.txt syslog
[] :: [SUCCESS] 192.168.1.199
//杀死目标服务器的syslog进程
9.卸载
tar zxvf pssh-1.4..tar.gz
cd pssh-1.4./
python setup.py install
cd ..
ssh-keygen -t dsa
ssh-copy-id -i /root/.ssh/id_dsa.pub localhost
pssh -H localhost date
ps axf rm -rf pssh-1.4.
ps axf
再次安装
tar zxvf pssh-1.4..tar.gz
cd pssh-1.4./
python setup.py install --record logName 记录安装后文件的路径
cat logName | xargs rm -rf 删除这些文件
locate pssh
rm -rf /usr/lib/python2./site-packages/pssh-2.3.-py2..egg-info 删除
pssh -H localhost date
pssh批量管理服务器的更多相关文章
- PSSH 批量管理服务器
pssh命令是一个python编写可以在多台服务器上执行命令的工具,同时支持拷贝文件,是同类工具中很出色的,类似pdsh,个人认为相对pdsh更为简便,使用必须在各个服务器上配置好密钥认证访问. 1. ...
- Ansible实现批量管理服务器
Ansible介绍: a. ansible是一个基于Python开发的自动化运维工具b. ansible是一个基于ssh协议实现远程管理的工具c. ansible软件可以实现多种批量管理操作(批量系统 ...
- pssh批量管理
因为公司金融项目正式上线,有等保的要求,所有的线上服务器对操作过历史命令都要记录下来,需要修改一部分的配制文件.总共有300多台Linux服务器,总不能一台一台去改吧.首先想到是ansble,salt ...
- 远程管理服务器--批量管理服务器,vps
一般大型的企事业单位都有自己的服务器,但是服务器一般都放在机房,辐射较大,噪音大,如何能有效的避免这一情况呢?哈哈,那就来个远程桌面,远程操作服务器吧. 一.使用 iis7远程连接管理工具工具下载官网 ...
- ansible 开源批量管理服务器工具
Ansible 是一款基于 Python 开发的自动化运维工具,可以进行配置管理.批量部署等功能.对于机器较多的场景,可以使用 Ansible 来免去重复敲命令的烦恼. 安装ansibleyum -y ...
- pssh 批量管理执行
pssh 是一个python写的批量执行工具,非常适合30台服务器以内的一些重复性的操作 安装很简单,只要python版本2.4 以上的都行 用这个工作最好把机器做做好ssh信任关系,不然很麻烦 每次 ...
- linux expect自动登陆远程服务器 批量管理服务器
#!/usr/bin/expect set ipaddress [lindex $argv 0] set passwd [lindex $argv 1] set timeout 3 spawn ssh ...
- Fabric 源码学习:如何实现批量管理远程服务器?
前不久,我写了一篇<Fabric教程>,简单来说,它是一个用 Python 开发的轻量级的远程系统管理工具,在远程登录服务器.执行 Shell 命令.批量管理服务器.远程部署等场景中,十分 ...
- 运维自动化管理服务器 CheungSSH
CheungSSH 是一款中国人自主研发的Linux运维自动化管理服务器软件,后端使用 Python 语言+Django 的 Web 框架,前端使用 Bootstrap+Javascript+jQue ...
随机推荐
- Log4j2 - Unable to invoke factory method in class org.apache.logging.log4j.core.appender.RollingFileAppender for element RollingFileAppender for element RollingFile
问题与分析 在使用Log4j2时,虽然可以正确读取配置文件并生成log文件,但偶然发现控制台打印了异常信息如下: 2018-12-31 17:28:14,282 Log4j2-TF-19-Config ...
- python 基础(十三) time模块
日期和时间 一.time模块 import time 时间戳: 时间戳是指格林威治时间1970年1月1日0时0分0秒至现在的秒数 s(秒).ms(毫秒).μs(微秒).ns(纳秒), 其中:1 ...
- python入门之迭代器
迭代器 已知,可以直接作用于for循环的数据类型有: 一类是集合数据类型,如list.tuple.dict.set.str 一类是generator,包括生成器和带yield的generator fu ...
- 在b站做计网实验 - 抓包/get/post
前言 这篇博文是一个小实验,用python发送get/post请求,其中用到cookie登录bilibili网站并修改个人信息. 抓包 对HTTP应用而言,用浏览器自带的插件可以很方便做到抓包,比如c ...
- python学习day13
目录 JavaScript Dom jQuery JavaScript JavaScript 是世界上最流行的编程语言. 这门语言可用于 HTML 和 web,更可广泛用于服务器.PC.笔记本电脑.平 ...
- WebForm随笔
一般处理程序中获取页面所传的值:int id = Convert.ToInt32(context.Request["id"]); 后台获取页面所传的值:int id = Conve ...
- Android镜像文件ramdisk.img,system.img,userdata.img介绍
Android 源码编译后,在out目录下生成的三个镜像文件:ramdisk.img,system.img,userdata.img以及它们对应的目录树root,system,data. ramdis ...
- Perl 输出内容到 excel
可以参考: http://search.cpan.org/~jmcnamara/Spreadsheet-WriteExcel/lib/Spreadsheet/WriteExcel.pm 使用Spre ...
- 霍金的新语音系统 ACAT 将开源
英国理论物理学家斯蒂芬·霍金(Stephen Hawking)使用了二十年的语音通讯系统被英特尔开发的新一代通讯平台替代,显著改进了通讯效率.但霍金的声音并没有发生改变,他仍然使用相同的语音合成器.霍 ...
- fluent_python2
字典和集合 泛映射类型, 继承自collections.abc, Mapping和MutableMapping 标准库里的所有映射类型都是利用 dict 来实现的,因此它们有个共同的限制,即只有可散列 ...