运维之道 | PSSH 自动化集群管理、自动化脚本管理
前言
PSSH是一个python编写可以在多台服务器上执行命令的工具,同时支持拷贝文件,是同类工具中很出色的。类似pdsh,但是相对pdsh更为简便,使用前必须在各个服务器上配置好密钥认证访问
一、主机规划
主机 | IP |
---|---|
管理主机 | 192.168.182.10 |
被管理主机 - 1 | 192.168.182.11 |
被管理主机 - 2 | 192.168.182.12 |
二、PSSH 安装
1、yum安装
[root@master ~]# yum install -y pssh
2、源码编译安装
百度网盘 ------- 提取码:ltwl
[root@master ~]# wget http://parallel-ssh.googlecode.com/files/pssh-2.3.1.tar.gz
[root@master ~]# tar xf pssh-2.3.1.tar.gz
[root@master ~]# cd pssh-2.3.1/
[root@master ~]# python setup.py build
[root@master ~]# python setup.py install ///centos6-py版本为2.6、centos7-py版本为2.7
3、ubuntu安装
[root@master ~]# sudo apt-get install pssh
PS1:ubuntu安装完pssh后,输入pssh,也许会提示:No command ‘pssh’ found, did you mean:…
[root@master ~]# echo "alias pssh=parallel-ssh" >> ~/.bashrc && . ~/.bashrc
PS2:安装完pssh后,还安装了pscp
、prsync
、pnuke
和pslurp
。和pssh命令无效的问题相同,它们默认也只能使用全名,不能只用简称。需要执行如下命令:
echo "alias pscp=parallel-scp" >> ~/.bashrc && . ~/.bashrc
echo "alias prsync=parallel-rsync" >> ~/.bashrc && . ~/.bashrc
echo "alias pnuke=parallel-nuke" >> ~/.bashrc && . ~/.bashrc
echo "alias pslurp=parallel-slurp" >> ~/.bashrc && . ~/.bashrc
二、PSSH 命令格式
命令格式:pssh [OPTIONS] command [...]
--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:打印出服务器返回信息
三、生成密钥免密管理
[root@master ~]# ssh-keygen
[root@master ~]# for i in {0,1,2}; do ssh-copy-id -i 192.168.1.1$i ; done
四、PSSH 命令行集群管理
1、单个主机管理
[root@master ~]# pssh -H root@192.168.182.11 -i date
[1] 10:40:09 [SUCCESS] root@192.168.182.11
2020年 02月 06日 星期四 10:40:09 CST
2、文件列表集群管理
- 编写ip地址集群脚本ip.txt
[root@master ~]# cat ip.txt
192.168.182.11
192.168.182.12
执行 pssh -h ip.txt -i 命令
[root@master ~]# pssh -h ip.txt -i date
[1] 10:43:52 [SUCCESS] 192.168.182.11
2020年 02月 06日 星期四 10:43:52 CST
[2] 10:44:02 [SUCCESS] 192.168.182.12
2020年 02月 06日 星期四 10:44:02 CST
3、将pssh查询结果输出到指定目录文件中
[root@master ~]# pssh -h ip.txt -i -o /villian/pssh/ date[root@master ~]# ll /villian/pssh/
总用量 8
-rw-r--r--. 1 root root 43 2月 6 10:49 192.168.182.11
-rw-r--r--. 1 root root 43 2月 6 10:49 192.168.182.12
五、基于 PSSH 的其他命令
1、基于pssh的pscp.pssh
命令
功能是将本地文件批量复制到远程主机
-v
:显示复制过程-a
: 复制过程中保留常规属性-r
:递归复制目录
命令:pscp -h ip文件 本地目录文件名 远程文件存放目录
[root@master ~]# pscp -H 192.168.182.11 /root/ip.txt ~/
[1] 10:58:21 [SUCCESS] 192.168.182.11
[root@slave ~]# ll
-rw-r--r-- 1 root root 30 2月 6 10:58 ip.txt
2、基于pssh的pslurp.pssh
命令
功能是将远程主机的文件批量复制到本地
-L
:指定从远程主机下载到本机的存储的目录,local是下载到本地后的名称-r
:递归复制目录
命令:pslurp -h ip文件 -L 本地目录 远程文件 本地文件名称
[root@master ~]# pslurp -H 192.168.182.11 -L /root/villian/ /root/villian.sh zwl.sh[root@master 192.168.182.11]# pwd
/root/villian/192.168.182.11
[root@master 192.168.182.11]# ls
zwl.sh
3、基于pssh的pnuke
命令
功能是用于批量远程结束进程
命令:pnuke -h ip文件 进程名
[root@master ~]# pnuke -H 192.168.182.11 httpd
[1] 11:23:40 [SUCCESS] 192.168.182.11
六、批量集群管理
1、获取每台机器的 uptime
- 新建ip集群文本
[root@master ~]# cat ip.txt
root@192.168.182.11
root@192.168.182.12
- 执行uptime命令
[root@master ~]# pssh -h ip.txt -i uptime
[1] 11:20:15 [SUCCESS] root@192.168.182.1111:20:15 up 1:17, 1 user, load average: 0.00, 0.01, 0.03
[2] 11:20:15 [SUCCESS] root@192.168.182.1211:20:15 up 38 min, 1 user, load average: 0.00, 0.01, 0.05
- 保存执行结果
[root@master ~]# pssh -h ip.txt -i -o /villian/pssh-1 uptime
[1] 11:21:35 [SUCCESS] root@192.168.182.1111:21:35 up 1:18, 1 user, load average: 0.06, 0.03, 0.04
[2] 11:21:35 [SUCCESS] root@192.168.182.1211:21:35 up 39 min, 1 user, load average: 0.00, 0.01, 0.05
[root@master ~]# ll /villian/pssh-1/
总用量 8
-rw-r--r--. 1 root root 61 2月 6 11:21 root@192.168.182.11
-rw-r--r--. 1 root root 62 2月 6 11:21 root@192.168.182.12
2、批量修改 hostname
- 创建ip集群文本
[root@master ~]# cat hosts ///注意,是hosts文件,不是hosts.txt文本
192.168.182.11 V1 ///IP与主机名Hostname对应关系
192.168.182.12 V2 ///IP与主机名Hostname对应关系
- 创建
hostname.sh
批量修改脚本
[root@master ~]# cat hostname.sh
#!/bin/bash
ip=`ifconfig ens33 | grep 'inet' | awk '{print $2}' | tr -d 'addr:'`
hostname=`cat /home/test/hosts | grep $ip | awk '{print $2}'`
echo $ip
echo $hostname
hostnamectl set-hostname --static $hostname
hostname $hostname
- 将
hosts
和hostname.sh脚本
发送至被管理主机
[root@master ~]# pscp -h ip.txt /root/hosts /home/test
[root@master ~]# pscp -h ip.txt /root/hostname.sh /home/test
- 批量授予hostname.sh可执行权限
[root@master ~]# pssh -h ip.txt -i 'chmod +x /home/test/hostname.sh'
- 批量执行hostname.sh
pssh -h ip.txt -i 'sh /home/test/hostname.sh'
运维之道 | PSSH 自动化集群管理、自动化脚本管理相关推荐
- swarm部署mysql_「实战篇」开源项目docker化运维部署-借助dockerSwarm搭建集群部署(九)...
为了让学习的知识融汇贯通,目前是把所有的集群都放在了一个虚拟机上,如果这个虚拟机宕机了怎么办?俗话说鸡蛋不要都放在一个篮子里面,把各种集群的节点拆分部署,应该把各种节点分机器部署,多个宿主机,这样部署 ...
- mongodb 集群shard_【mongoDB运维篇④】Shard 分片集群
简述 为何要分片 减少单机请求数,降低单机负载,提高总负载 减少单机的存储空间,提高总存空间. 常见的mongodb sharding 服务器架构 要构建一个 MongoDB Sharding Clu ...
- mongodb 集群shard_【mongoDB运维篇④】Shard分片集群
## 简述 ### 为何要分片 1. 减少单机请求数,降低单机负载,提高总负载 2. 减少单机的存储空间,提高总存空间. ![此处输入图片的描述][1] ### **常见的mongodb shardi ...
- Linux集群和自动化运维
Linux/Unix技术丛书 Linux集群和自动化运维 余洪春 著 图书在版编目(CIP)数据 Linux集群和自动化运维/余洪春著. -北京:机械工业出版社,2016.8 (Linux/Unix技 ...
- 运维之道 | Redis 集群搭建
Redis 集群搭建 集群中至少应该有奇数个节点,所以搭建集群最少需要3台主机.同时每个节点至少有一个备份节点,所以下面最少需要创建使用6台主机,才能完成Redis Cluster 集群搭建(主节点. ...
- 游戏运维的最佳实践:搜狐畅游自动化运维之旅
本文讲的是游戏运维的最佳实践:搜狐畅游自动化运维之旅[编者的话]本文作者见证了畅游游戏自动化运维平台的从无到有,通过在其中踩过的坑.解过的结,他向大家来阐述游戏运维的进阶之路.本文主要围绕畅游游戏管理 ...
- 运维之道 | Mysql主从复制+mycat读写分离
运维之道 | Mysql主从复制 + Mycat读写分离 1.什么是读写分离 读写分离,基本的原理是让主数据库处理事务性增.删.改操作(INSERT.UPDATE.DROP),而从数据库处理SELEC ...
- CapitalOne - Artifactory高可用集群的自动化部署实践
背景 本文为大家介绍Capital One如何利用自动化流水线实现Artifactory HA集群进行自动化运维.Capital One银行是美国最大的数字化银行之一,在Capital One的dev ...
- 专访优维科技CTO黎明:探寻当下的IT运维之道
随着互联网信息和云计算技术的发展,企业的服务器系统从集中计算架构全面过度到海量的分布式计算架构,随之而来的海量服务器维护和管理成为企业运维人员的主要挑战,自动化运维已经成为目前企业服务器系统的主要建设 ...
最新文章
- 微信公众号为指定openid用户推送消息
- 【组队学习】【26期】Linux教程
- Kotlin 1.3.30 发布,改进性能和引入新特性
- MySQL性能优化的最佳21条经验
- 深入解析JNA—模拟C语言结构体
- Excel中这四个常出错的地方,你一定中过!
- 首次!华人获世界科学奖,其海洋蓝色能源技术或解决世界能源需求
- mysql读出来的日期后面多了个 .0处理及layui中日期控件点击一闪而过处理
- python实现Prim算法求解加权连通图的最小生成树问题
- dell微型计算机换内存条,内存条的更换,详细教您电脑的内存条怎么更换
- 计算机证书都需要哪些知识,计算机资格证书有哪些计算机专业证书有哪些
- 使用 PHPMailer 配合 QQ邮箱 发送邮件
- 【每日新闻】倪光南:“中国芯”切勿重硬轻软;美国研发出可直接在皮肤上打印的3D打印技术...
- 微信小程序w-picker组件关于颗粒度“时“即hour时“日“初始化不显示问题处理
- 当前计算机硬盘容量的计量单位是GB,当前计算机硬盘容量的计量单位是GB,它相当于________字节...
- 分享一种 ConstraintLayout 让TextView 自适应的同时,还不超出限制范围的方式
- 计算机应用基础试卷分析报告,计算机应用基础 试卷分析.doc
- HTML5 网页栅格布局
- 个人设计web前端大作业~响应式游戏网站源码(HTML+CSS+Bootstrap)
- 统计一个数所有质因数的个数
热门文章
- RecyclerView添加Header的正确方式
- idea中unicode编码转换成中文
- pycharm怎么把中文翻译成英文
- 医学高材生们,思维导图给你4个高效学习技巧
- 【测试笔记】弱网环境搭建—clumsy0.2
- 【从kitti开始自动驾驶】--6.2 全场景2D检测(移植至ROS,显示于RVIZ)
- VMware vCenter Server 7.0 完整安装教程
- 龙芯1b(LS1B200)使用LVGL7.0.1组件的初次体验
- 2021.11.7 力扣-周赛-分配给商店的最多商品的最小值
- linux rm 删除文件,linux rm命令删除文件详解