运维自动化轻量级工具pssh

简介:

1.pssh介绍

pssh是python写的可以并发在多台机器上批量执行命令的工具,它的用法可以媲美ansible的一些简单用法,执行起来速度比ansible快它支持文件并行复制,远程命令执行,杀掉远程主机上的进程等等。杀手锏是文件并行复制,,当进行再远程主机批量上传下载的时候,最好使用它。

2.pssh的使用

在使用pssh之前,必须要保证管理主机和本地主机进行过密钥的认证,或者是在进行批量时,没有做过密钥认证,但是必须保证被管理的多台主机的密码相同。关于如何做密钥认证,这里就不多说了,可以自行百度。

2.1安装

官网地址:https://code.google.com/archive/p/parallel-ssh/downloads(需要能打开谷歌)

或者是yum 来安装


wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/parallel-ssh/pssh-2.3.1.tar.gztar -zxvf pssh-2.3.1.tar.gz
cd pssh-2.3.1python setup.py install
或者
yum install -y pssh


使用yum安装后,只能使用pssh,但是编译安装后会包括其他命令也安装了(pscp  prsync  pnuke  pslurp)

pssh:在远程多台主机上并行运行命令

pscp :把文件并行复制到多台远程主机上

prsync:使用rsync协议本地文件同步到远程多台主机上。

pnuke:在远程多台主机上并行killall某一进程

pslurp:把文件从远程多台主机上复制到本地主机上

2.2 pssh常用参数


具体常用介绍:

-h   HOST_FILE   后边跟远程主机列表(ip)

-H   HOST_STRING   后边跟远程主机名或者ip地址

-l   USER  指定远程主机的用户名

-p  PAR   指定pssh最大的并行线程数。

-o  将输出的内容重定向到一个指定的文件中

-O 指定ssh参数的具体配置

-e  将执行错误重定向到一个指定的文件中

-t  设定命令执行超时时间

-x  传递ssh命令的一些参数

-i  在远程主机上执行命令完成后显示标准输出和标准错误

-P  在执行远程命令时,输出执行结果

 用法实例:

pssh -P  -i   -h  sz_vpc.txt  "w" 

# 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
# cat test.txt
192.168.9.102:9922
192.168.9.104:9922
192.168.8.171:22   //注意我的端口号不仅是默认的22
假如想将输出重定向到一个文件 加-o file 选项

3.pscp拷贝文件到远程主机

pscp  -h  ip.txt /etc/wenjian.txt   /tmp/

4.pnuke杀掉某一进程

这个命令类似yu  killall命令

pnuke  -h  iplist.txt   httpd

上边的意思是在远程主机上批量关闭httpd服务

能通过killall关闭的服务,都可以通过pnuke来批量完成

5.pslurp 远程主机拷贝文件到本地主机

pslurp -h iplist.txt -L /home/ /hose/wenjian/yuanc.conf open.conf

上边是,将所有远程主机/hose/wenjian/yuanc.conf复制到本地主机/home/目录下,并且重新命名为open.conf  -L 来指定本地文件路径

下面这个是拷贝目录

 pslurp -h iplist.txt -r -L /home/ /hose/wenjian/ open

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


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


7.多条命令执行脚本

# cat leo.sh 

cd /u02/applications

tar -zcf websiteinterface-$(date +%Y%m%d-%H%M).tgz websiteinterface


pssh -h ip.txt -i -P "$(cat leo.sh)"

pssh -h ip.txt -i -P "`cat leo.sh`"

切记一定要有引号












本文转自leonardos51CTO博客,原文链接: http://blog.51cto.com/leomars/1917767,如需转载请自行联系原作者



相关文章
|
17天前
|
敏捷开发
【sgCreatePinyin】自定义小工具:敏捷开发→自动化生成拼音字段名称(字段名生成工具)
【sgCreatePinyin】自定义小工具:敏捷开发→自动化生成拼音字段名称(字段名生成工具)
|
1月前
|
jenkins 测试技术 持续交付
现代软件测试中的自动化工具与挑战
随着软件开发领域的不断发展,自动化测试工具在测试过程中扮演着越来越重要的角色。本文将探讨现代软件测试中自动化工具的应用及面临的挑战,旨在帮助开发人员和测试人员更好地理解和应对自动化测试中的问题。
|
2天前
|
存储 运维 Shell
Ansible自动化运维工具安装和基本使用
Ansible 是一款无代理的IT自动化工具,通过SSH连接目标主机执行配置管理、应用部署和云端管理任务。它使用YAML编写的Playbook定义任务,核心组件包括Playbook、模块、主机清单、变量等。Ansible的优势在于易用、功能强大、无须在目标主机安装额外软件,并且开源。安装过程涉及配置网络源、yum安装和SSH密钥设置。通过定义主机清单和使用模块进行通信测试,确保连接成功。
Ansible自动化运维工具安装和基本使用
|
2天前
|
机器学习/深度学习 运维 网络协议
运维工程师必会工具(Nmap和TCPdump)
运维工程师必会工具(Nmap和TCPdump)
|
17天前
|
敏捷开发
【sgCreateTableData】自定义小工具:敏捷开发→自动化生成表格数据数组[基于el-table]
【sgCreateTableData】自定义小工具:敏捷开发→自动化生成表格数据数组[基于el-table]
|
24天前
|
Java 测试技术 API
软件测试中的自动化工具与策略
软件测试是确保软件质量的重要环节,而自动化测试工具和策略的应用在提高测试效率和准确性方面发挥着重要作用。本文将介绍几种常见的自动化测试工具,并探讨在软件测试中应用自动化测试的最佳实践和策略。
|
26天前
|
Web App开发 Java 测试技术
深入理解与应用软件自动化测试工具Selenium
随着软件开发的快速发展,软件测试在保证产品质量方面发挥着越来越重要的作用。其中,自动化测试以其效率高、成本低的特点受到了广大开发者的欢迎。本文主要介绍了自动化测试工具Selenium的基本概念、原理以及在实际开发中的应用,旨在帮助读者更好地理解和使用Selenium进行高效的自动化测试。
22 4
|
1月前
|
人工智能 运维 Prometheus
现代运维中的自动化工具与挑战
随着信息技术的不断发展,现代运维工作日益复杂且关键。本文将探讨现代运维中自动化工具的应用与挑战,介绍各类自动化工具在提高效率、降低风险方面的作用,并讨论在实际应用中可能面临的问题与解决方法。
25 4
|
7月前
|
缓存 运维 Linux
Linux(CentOS)运维脚本工具集合
Linux(CentOS)运维脚本工具集合
148 2
|
22天前
|
运维 Linux Shell
linux运维常用命令
linux运维常用命令