pssh批量管理
因为公司金融项目正式上线,有等保的要求,所有的线上服务器对操作过历史命令都要记录下来,需要修改一部分的配制文件。总共有300多台Linux服务器,总不能一台一台去改吧。首先想到是ansble,saltstack这两个批量管理的,但是想了想,saltstack不会,ansble好像是好像是被管理端还要安装客户端的,又不经常使用(线上的环境),弄好了还要编排剧本,语法都忘记了。有没有更轻量一点的工具呢?以前在书上了解到pssh这个工具好像挺不错的,但是也没有使用,先试试在说。
pssh是python写的可以并发在多台机器上批量执行命令的工具,它的用法可以媲美ansible的一些简单用法,执行起来速度比ansible快它支持文件并行复制,远程命令执行,杀掉远程主机上的进程等等。杀手锏是文件并行复制,当进行再远程主机批量上传下载的时候,最好使用它。
Pssh是用python写的轻量的批量管理工具。有两种安装方式,一种yum安装,一种编译安装。
第一步 安装
我采用是yum安装,yum安装需要epel源。
yum install pssh
使用yum安装后,只能使用pssh,但是编译安装后会包括其他命令也安装了(实测yum安装这些命令都是有的)
pssh:在远程多台主机上并行运行命令
pscp :把文件并行复制到多台远程主机上
prsync:使用rsync协议本地文件同步到远程多台主机上。
pnuke:在远程多台主机上并行killall某一进程
pslurp:把文件从远程多台主机上复制到本地主机上
第二步 ssh单项免秘钥登录
找一台测试服务器,能够ping通所有的被管理的机器,然后做ssh单项的免秘钥登录,这免秘钥登录是批量管理软件都需要做的事情。这是使用一个免密码交互的脚本来实现。
需要安装sshpass命令(这是一个ssh免交互写入密码的命令)
yum install –y sshpass
脚本
#!/bin/bash
for ip in seq {..}
do
sshpass –p”password” ssh-copy-id -i /root/.ssh/id_rsa.pub "-o StrictHostKeyChecking=no" 10.8..$ip
done
关于pssh命令执行的参数
-h HOST_FILE 后边跟远程主机列表(ip)
-H HOST_STRING 后边跟远程主机名或者ip地址
-l USER 指定远程主机的用户名
-p PAR 指定pssh最大的并行线程数。
-o 将输出的内容重定向到一个指定的文件中
-O 指定ssh参数的具体配置
-e 将执行错误重定向到一个指定的文件中
-t 设定命令执行超时时间
-x 传递ssh命令的一些参数
-i 在远程主机上执行命令完成后显示标准输出和标准错误
-P 在执行远程命令时,输出执行结果
具体怎么使用查看man帮助,有他的详细介绍
第三部 把脚本传到对应的被管理端的服务器上面去
pscp.pssh -h ip.txt test.sh /tmp/dengbao.sh
ip.txt 存放的是被管理的IP
file.txt 是dengbao.sh调用的文件
dengbao.sh是在服务器上修改和添加内容的脚本,用来执行等保要求的。
文件内容
ip.txt
10.8.27.112
10.8.27.113
10.8.27.114
10.8.27.115
10.8.27.116 。。。
dengbao.sh
export PROMPT_COMMAND='{ thisHistID=`history 1|awk "{print \\$1}"`;lastCommand=`history 1| awk "{\\$1=\"\" ;print}"`;user=`id -un`;whoStr=(`who -u am i`);
realUser=${whoStr[]};logMonth=${whoStr[]};
logDay=${whoStr[]};
logTime=${whoStr[]};pid=${whoStr[]};
ip=${whoStr[]};if [ ${thisHistID}x != ${lastHistID}x ];
then echo -E `date "+%Y/%m/%d %H:%M:%S"` $user\($realUser\)@$ip[PID:$pid][LOGIN:$logMonth $logDay $logTime] --- $lastCommand ;lastHistID=$thisHistID;fi; } >> $HISTORY_FILE'
第三部 批量执行脚本
pssh -h ip.txt bash /tmp/dengbao.sh
如果出现绿色success的标志,表示成功了。
第四部 ssh登录到服务器,检查一台服务器的执行情况,一台执行成功则全部执行成功。
附加:我也是在网上早其他命令的用法
pnuke杀掉某一进程
这个命令类似killall命令
pnuke -h iplist.txt httpd
上边的意思是在远程主机上批量关闭httpd服务
能通过killall关闭的服务,都可以通过pnuke来批量完成
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
ps:建议分发文件,执行命令,批量杀死进程,使用pssh,pscp,pnuke,速度很快的
pssh批量管理的更多相关文章
- pssh批量管理服务器
pssh命令是一个python编写可以在多台服务器上执行命令的工具,同时支持拷贝文件,是同类工具中很出色的,类似pdsh,个人认为相对pdsh更为简便,使用必须在各个服务器上配置好密钥认证访问. 1. ...
- PSSH 批量管理服务器
pssh命令是一个python编写可以在多台服务器上执行命令的工具,同时支持拷贝文件,是同类工具中很出色的,类似pdsh,个人认为相对pdsh更为简便,使用必须在各个服务器上配置好密钥认证访问. 1. ...
- pssh 批量管理执行
pssh 是一个python写的批量执行工具,非常适合30台服务器以内的一些重复性的操作 安装很简单,只要python版本2.4 以上的都行 用这个工作最好把机器做做好ssh信任关系,不然很麻烦 每次 ...
- Linux下批量管理工具pssh安装和使用
Linux下批量管理工具pssh安装和使用 pssh工具包 安装:yum -y install pssh pssh:在多个主机上并行地运行命令 pscp:把文件并行地复制到多个主机上 prsync:通 ...
- pssh批量远程管理工具
Linux下批量管理工具pssh使用记录 pssh是一款开源的软件,使用python实现,用于批量ssh操作大批量机器:pssh是一个可以在多台服务器上执行命令的工具,同时支持拷贝文件,是同类工具 ...
- 轻量级批量管理工具pssh
pssh工具 pssh工具是个轻量级的批量管理工具,相比同类型的开源工具 Ansible,Saltstack,他比较轻量级,需要对管理的主机做秘钥认证 Ansible是可以做秘钥认证,也可以通过配置文 ...
- 批量管理工具:pssh/ansible
ssh 免密码 批量管理1.创建用户useradd user1echo “123456”| passwd --stdin user12.创建秘钥ssh-keygen -t dsa然后一直回车 非交互式 ...
- 自动化批量管理工具pssh - 运维小结
pssh提供OpenSSH和相关工具的并行版本.包括pssh,pscp,prsync,pnuke和pslurp.该项目包括psshlib,可以在自定义应用程序中使用.pssh是python写的可以并发 ...
- Linux下批量管理工具pssh使用记录
pssh是一款开源的软件,使用python实现,用于批量ssh操作大批量机器:pssh是一个可以在多台服务器上执行命令的工具,同时支持拷贝文件,是同类工具中很出色的:比起for循环的做法,我更推荐使用 ...
随机推荐
- HTTP Status 404(The requested resource is not available)的几种解决方案
1. 未部署Web应用 2.URL输入错误 排错方法:首先,查看URL的IP地址和端口号是否书写正确.其次,查看上下文路径是否正确 Project--------Properties--- ...
- go关键字之type用法
1.定义结构体 type Student struct { name string code int } 2.类型别名 type i int64 var age i = 30 ...
- work table a year
近10个月~ 回顾一下最近写代码和博客~ 4.5.6月份刷OJ~ 7月中旬入职滴滴,几乎放弃了博客... GitHub提交统计,主要集中在准备机试,刷了九度OJ~ GitLab in didi~ 很 ...
- brew 源 & pip 源
brew源: https://www.zhihu.com/question/31360766 摘要 1. 替换formula 索引的镜像(即 brew update 时所更新内容) cd " ...
- react withClamp装饰器
Clamp.js 等待异步数据加载完后在初始化$clamp withClamp.js import React, { Component } from "react"; expor ...
- Druid连接池(二)
DRUID是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0.DBCP.PROXOOL等DB池的优点,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况,可以说是针对监控而生的DB ...
- 有多个正整数存放在数组中,编写一个函数要求偶数在左边由小到大顺序放置,奇数在右边,也是由小到大顺序放置,Java实现
思路: * 1.首先分左右 * 2.分好再排序(左边和右边都单独排序) 第一步:分左右 可得注意了: 大体思路最先是从两头出发分成4种情况讨论(左or右,奇数or偶数)循环处理,出口是双层的嵌套循环( ...
- CSS弹性盒布局(display:flex)
CSS弹性布局(display:flex) 参考: http://www.runoob.com/w3cnote/flex-grammar.html https://www.jianshu.com/p/ ...
- Django中使用Celery
一.前言 Celery是一个基于python开发的分布式任务队列,如果不了解请阅读笔者上一篇博文Celery入门与进阶,而做python WEB开发最为流行的框架莫属Django,但是Django的请 ...
- Vsftp搭建 for centos7
[root@hys ~]# uname -a Linux hys 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x8 ...