tree老师:PSSH自动化运维实战
pssh是一个可以在多台服务器上执行命令的工具,同时支持拷贝文件,是同类工具中很出色的。使用是必须在各个服务器上配置好密钥认证访问。
pssh是用python来写的一个管理工具,管理几万台服务器,就是因为使用各式各样的工具。
如果服务器超过50台,上百台,就不能再用shell来写个for循环来执行了,这时候就会用到pssh.
pssh 包安装 5 个实用程序:
pssh 在多个主机上并行地运行命令。
pscp 把文件并行地复制到多个主机上。
prsync 通过 rsync 协议把文件高效地并行复制到多个主机上。
pslurp 把文件并行地从多个远程主机复制到中心主机上。
pnuke 并发地在多个远程主机上杀死进程。
PSSH相关参数:
pssh在多个主机上并行地运行命令
-h 执行命令的远程主机列表,文件内容格式[user@]host[:port]
如test@172.16.10.10:229
-H 执行命令主机,主机格式 user@ip:port
-l 远程机器的用户名
-p 一次最大允许多少连接
-P 执行时输出执行信息
-o 输出内容重定向到一个文件
-e 执行错误重定向到一个文件
-t 设置命令执行超时时间
-A 提示输入密码并且把密码传递给ssh(如果私钥也有密码也用这个参数)
-O 设置ssh一些选项
-x 设置ssh额外的一些参数,可以多个,不同参数间空格分开
-X 同-x,但是只能设置一个参数
-i 显示标准输出和标准错误在每台host执行完毕后
安装部署:
wget http://www.theether.org/pssh/pssh-1.4.3.tar.gz [root@xuegod63 ]# tar -zxvf pssh-1.4.3.tar.gz
[root@xuegod63 test]# cd pssh-1.4.3
[root@xuegod63 pssh-1.4.3]# ls
AUTHORS BUGS COPYING INSTALL PKG-INFO psshlib setup.py
bin ChangeLog doc Makefile pssh.egg-info setup.cfg test
[root@xuegod63 pssh-1.4.3]# python setup.py install
pssh的版本会影响是否可以传密码,-A是传密码的
1.4.3的版本没有传密码的功能
建立ssh秘钥:
[root@xuegod63 test]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
ca:6a:0a:55:cf:55:91:f7:b9:fd:71:11:62:95:cd:7d root@xuegod63.cn
The key's randomart p_w_picpath is:
+--[ RSA 2048]----+
| oo .o+|
| .. .o oE|
+-----------------+
[root@xuegod63 test]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.64
[root@xuegod63 test]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.63
[root@xuegod63 test]# cat list.txt
192.168.1.63
192.168.1.64
远程执行命令:
[root@xuegod63 test]# pssh -i -h list.txt 'df -h'
[1] 11:33:40 [SUCCESS] 192.168.1.64 22
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 18G 3.8G 13G 23% /
tmpfs 1004M 76K 1004M 1% /dev/shm
/dev/sda1 194M 34M 151M 19% /boot
/dev/sr0 3.6G 3.6G 0 100% /mnt
[2] 11:33:40 [SUCCESS] 192.168.1.63 22
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 18G 6.2G 11G 38% /
tmpfs 932M 224K 931M 1% /dev/shm
/dev/sda1 190M 41M 140M 23% /boot
/dev/sr0 3.7G 3.7G 0 100% /media/CentOS_6.7_Final
远程执行:
pssh -i -h list.txt ‘df -h’
pssh -I -h list.txt ‘ifconfig’
pscp 传输文件
pscp -r -h list.txt /root/passh /tmp
1.使用脚本远程拷贝文件,把本地文件拷贝到远程服务器
[root@xuegod63 test]# cat a.txt
#!/bin/sh
if [ $# -ne 2 ];then
echo "Usage:scpl2r.sh localfile remotefile"
exit
fi
srcfile=$1
dstfile=$2
PSCP=/usr/local/bin/pscp
$PSCP -h /root/test/list.txt -l root $srcfile $dstfile
执行:
root@xuegod63 test]# sh a.txt /root/test/aa /root/
查看:
[root@xuegod63 ~]# ls
aa
[root@xuegod64 ~]# ls
aa
缺点:
1. 在执行命令的时候,所有的输出只能够存放到一个文件中,有些不方便
2. 必须使用密钥登录
优点:
1. 可以指定不同的登录用户
2. 支持scp功能,包括从本地拷贝文件到远端,从远端拷贝文件到本地
转载于:https://blog.51cto.com/tree01/1877030
tree老师:PSSH自动化运维实战相关推荐
- linux云自动化运维,Liunx运维一线大神亲授 全新Linux云计算运维基础与Linux Shell自动化运维实战课程...
Liunx运维一线大神亲授 全新Linux云计算运维基础与Linux Shell自动化运维实战课程 全新Linux云计算运维基础与Linux Shell自动化运维实战课程,由于国内一线大神亲自授课与教 ...
- 一个颜值低但脾气超好的自动化运维实战入门教程
注:本教程由廖高祥发布于实验楼,版权归原作者所有. 什么是自动化运维? 自动化运维是指将IT运维中日常的.大量的重复性工作自动化,把过去的手工执行转为自动化操作.自动化运维不单纯是一个维护过程,更是一 ...
- python paramiko模块下载_Python自动化运维实战:使用Python管理网络设备
现在,我们已经知道如何在不同的操作系统中使用和安装Python以及如何使用EVE-NG搭建网络拓扑.在本章中,我们将学习如何使用目前常用的网络自动化库自动完成各种网络任务.Python可以在不同的网络 ...
- 函数计算自动化运维实战 3 -- 事件触发自动创建快照
函数计算 阿里云函数计算是一个事件驱动的全托管计算服务.通过函数计算,您无需管理服务器等基础设施,只需编写代码并上传.函数计算会为您准备好计算资源,以弹性.可靠的方式运行您的代码,并提供日志查询,性能 ...
- 函数计算自动化运维实战2 -- 事件触发 eip 自动转移
函数计算 阿里云函数计算是一个事件驱动的全托管计算服务.通过函数计算,您无需管理服务器等基础设施,只需编写代码并上传.函数计算会为您准备好计算资源,以弹性.可靠的方式运行您的代码,并提供日志查询,性能 ...
- 函数计算自动化运维实战1 -- 定时任务
函数计算 阿里云函数计算是一个事件驱动的全托管计算服务.通过函数计算,您无需管理服务器等基础设施,只需编写代码并上传.函数计算会为您准备好计算资源,以弹性.可靠的方式运行您的代码,并提供日志查询,性能 ...
- 标杆徐2018 Linux自动化运维实战,标杆徐2018 Linux自动化运维系列⑦: SaltStack自动化配置管理实战...
结合企业自动化集群场景讲解,轻松玩转SaltStack自动化配置管理工具 第1章 SaltStack基础应用 SaltStack安装 SaltStack认证 Saltstack远程执行 SaltSta ...
- SaltStack 企业级自动化运维实战
一.SaltStack 概述 1.SaltStack 简介 SaltStack是一个服务器基础架构集中化管理平台,具备配置管理.远程执行.监控等功能,一般可以理解为简化版的puppet和加强版的fun ...
- CSDN首例Python自动化运维实战:从Linux系统中收集数据
目录:导读 从Linux系统中收集数据 通过邮件发送收集的数据 使用time和date模块 定期运行脚本 从Linux系统中收集数据 使用Linux命令可以查看当前系统状态和运行状况的相关数据.然而, ...
最新文章
- silverlight、wpf中 dispatcher和timer区别
- objective-c对NSArray的学习
- Python进阶-----类的继承顺序
- 如何检出SVN老版本代码
- LInux下装jdk
- 随想录(串口屏带来的启示)
- mysql 导入设置编码_MySQL导入或导出数据库字符编码集设置
- 什么是SQL Server DATEPART()方法?
- 关于循环经济的三维展示
- 百度API从经纬度坐标到地址的转换服务
- html去掉右侧滚动条,html中去掉textarea右侧滚动条和右下角拖拽
- js打开新窗口与页面跳转
- 测量员软件测试版,测量员app
- ubuntu固定ip地址
- 机顶盒播放流媒体服务器的文件,IPTV机顶盒的流媒体播放器设计
- Linux添加路由的方法
- 如何旋转PDF的页面方向?教你2种方法
- ffmpeg 如何剔除掉视频中的水印和马赛克
- 推荐一首歌 《老男孩》
- 了解一些常用的文件系统和一些基础定义