运维自动化轻量级工具pssh
程序员文章站
2022-05-30 13:21:38
...
介绍
pssh命令是一个python编写可以在多台服务器上执行命令的工具,同时支持拷贝文件,是同类工具中很出色的,类似pdsh,个人认为相对pdsh更为简便,使用必须在各个服务器上配置好**认证访问。
安装pssh
在CentOS系统环境下,介绍yum的安装和源码安装的方式:
- yum方法
yum install pssh
- 编译安装
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
选项
--version:查看版本
-h:主机文件列表,内容格式”[[email protected]]host[:port]”
-H:主机字符串,内容格式”[[email protected]]host[:port]”
-l:登录使用的用户名
-p:并发的线程数【可选】
-o:输出的文件目录【可选】
-e:错误输入文件【可选】
-t:TIMEOUT 超时时间设置,0无限制【可选】
-O:SSH的选项-v:详细模式
-A:手动输入密码模式
-x:额外的命令行参数使用空白符号,引号,反斜线处理
-X:额外的命令行参数,单个参数模式,同-x -i:每个服务器内部处理信息输出
-P:打印出服务器返回信息
Pssh示例(前提是基于key验证)
获取每台服务器的uptime:
# 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状态
[[email protected] ~]#pssh -H 172.18.101.93 getenforce
[1] 21:44:31 [SUCCESS] 172.18.101.93
[[email protected] ~]#pssh -H 172.18.101.93 -i getenforce
[1] 21:44:34 [SUCCESS] 172.18.101.93
Disabled
[[email protected] ~]#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
更方便ip地址写到文件中(ip.txt放着ip地址)
[root@centos7 ~]#pssh -h ip.txt -i getenforce
PSCP.PSSH命令
pscp.pssh功能是将本地文件批量复制到远程主机
pscp [-vAr] [-h hosts_file] [-H [[email protected]]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命令
pslurp.pssh功能是将远程主机的文件批量复制到本地
pslurp [-vAr] [-h hosts_file] [-H [[email protected]]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
下一篇: fs文件模块