前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >运维自动化轻量级工具pssh

运维自动化轻量级工具pssh

作者头像
咻一咻
发布2020-05-29 15:23:16
8770
发布2020-05-29 15:23:16
举报
文章被收录于专栏:咻一咻咻一咻

介绍

pssh命令是一个python编写可以在多台服务器上执行命令的工具,同时支持拷贝文件,是同类工具中很出色的,类似pdsh,个人认为相对pdsh更为简便,使用必须在各个服务器上配置好密钥认证访问。

安装pssh

在CentOS系统环境下,介绍yum的安装和源码安装的方式:

  • yum方法
代码语言:javascript
复制
yum install pssh
  • 编译安装
代码语言:javascript
复制
wget https://pypi.python.org/packages/60/9a/8035af3a7d3d1617ae2c7c174efa4f154e5bf9c24b36b623413b38be8e4a/pssh-2.3.1.tar.gz
tar xf pssh-2.3.1.tar.gz
cd pssh-2.3.1/
python setup.py install

选项

代码语言:javascript
复制
--version:查看版本
-h:主机文件列表,内容格式”[user@]host[:port]” 
-H:主机字符串,内容格式”[user@]host[:port]” 
-l:登录使用的用户名
-p:并发的线程数【可选】
-o:输出的文件目录【可选】
-e:错误输入文件【可选】
-t:TIMEOUT 超时时间设置,0无限制【可选】
-O:SSH的选项-v:详细模式
-A:手动输入密码模式
-x:额外的命令行参数使用空白符号,引号,反斜线处理
-X:额外的命令行参数,单个参数模式,同-x -i:每个服务器内部处理信息输出
-P:打印出服务器返回信息

Pssh示例(前提是基于key验证)

获取每台服务器的uptime:

代码语言:javascript
复制
# pssh -h ip.txt -i uptime
[1] 11:15:03 [SUCCESS] Mar.mars.he
11:15:11 up 4 days, 16:25,  1 user,  load average: 0.00, 0.00, 0.00
[2] 11:15:03 [SUCCESS] Jan.mars.he
11:15:12 up 3 days, 23:26,  0 users,  load average: 0.00, 0.00, 0.00
[3] 11:15:03 [SUCCESS] Feb.mars.he
11:15:12 up 4 days, 16:26,  2 users,  load average: 0.08, 0.02, 0.01

获取每台服务器的SElinux状态

代码语言:javascript
复制
[root@centos7 ~]#pssh -H 172.18.101.93 getenforce
[1] 21:44:31 [SUCCESS] 172.18.101.93
[root@centos7 ~]#pssh -H 172.18.101.93 -i getenforce
[1] 21:44:34 [SUCCESS] 172.18.101.93
Disabled
[root@centos7 ~]#pssh -H 172.18.101.93 172.18.101.94 -i getenforce
[1] 21:44:34 [SUCCESS] 172.18.101.93
Disabled
[2] 21:44:34 [SUCCESS] 172.18.101.94
Disabled
代码语言:javascript
复制
更方便ip地址写到文件中(ip.txt放着ip地址)
[root@centos7 ~]#pssh -h ip.txt -i getenforce

PSCP.PSSH命令

代码语言:javascript
复制
pscp.pssh功能是将本地文件批量复制到远程主机
pscp [-vAr] [-h hosts_file] [-H [user@]host[:port]] [-l user] [-p par] [-o outdir] [-e errdir] [-t timeout] [-O options] [-x args] [-X arg] local remote
Pscp-pssh选项
    -v 显示复制过程
    -a 复制过程中保留常规属性
    -r 递归复制目录

将本地curl.sh 复制到/app/目录
pscp.pssh -H 192.168.1.10 /root/test/curl.sh /app/   
pscp.pssh -h host.txt  /root/test/curl.sh /app/

将本地多个文件批量复制到/app/目录
pscp.pssh -H 192.168.1.10  /root/f1.sh /root/f2.sh /app/

将本地目录批量复制到/app/目录
pscp.pssh -H 192.168.1.10  -r /root/test/ /app/

PSLURP.PSSH命令

代码语言:javascript
复制
pslurp.pssh功能是将远程主机的文件批量复制到本地
pslurp [-vAr] [-h  hosts_file] [-H [user@]host[:port]] [-l user] [-p par][-o outdir] [-e errdir] [-t timeout] [-O options] [-x args] [-X arg] [-L localdir] remote local(本地名)
Pslurp-pssh选项
-L 指定从远程主机下载到本机的存储的目录,local是下载到本地后的名称
-r 递归复制目录
批量下载目标服务器的passwd文件至/app下,并更名为user
pslurp -H 192.168.1.10 -L /app/ /etc/passwd user
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-02-04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • 安装pssh
  • 选项
  • Pssh示例(前提是基于key验证)
  • PSCP.PSSH命令
  • PSLURP.PSSH命令
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档