初识pssh
使用原因
对于上百台服务器配置服务,一台一台改工作量极大。首先想到是ansble,saltstack这两个批量管理的,但是想了想,saltstack不会,ansble好像是好像是被管理端还要安装客户端的,又不经常使用(线上的环境),弄好了还要编排剧本,语法都忘记了。有没有更轻量一点的工具呢?以前在书上了解到pssh这个工具好像挺不错的
pssh作用
pssh是python写的可以并发在多台机器上批量执行命令的工具,它的用法可以媲美ansible的一些简单用法,执行起来速度比ansible快它支持文件并行复制,远程命令执行,杀掉远程主机上的进程等等。杀手锏是文件并行复制,当进行再远程主机批量上传下载的时候,最好使用它。
pssh配置
1.生成秘钥对
ssh-keygen -t rsa
三次回车
本机一台配置即可
2.ssh单项免秘钥登录
yum install –y sshpass
脚本
vim ssh.sh
for ip in seq {12..30}
do
sshpass –p”password” ssh-copy-id -i /root/.ssh/id_rsa.pub "-o StrictHostKeyChecking=no" 10.8.25.$ip
done10.8.25.ip需要批量处理服务器ip
3.安装pssh
yum install –y pssh
4.把脚本传到对应的被管理端的服务器上
pscp.pssh -h ip.txt wzs_test.sh/文件 /tmp/
ip.txt 要传输主机IP列表
wzs_test.sh 需要执行的脚本
要传输文件
5.批量执行脚本
pssh -h ip.txt bash /tmp/wzs_test.sh
扩展
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,速度很快的
详解yum 安装pssh
使用yum安装后,只能使用pssh,但是编译安装后会包括其他命令也安装了(实测yum安装这些命令都是有的)
pssh:在远程多台主机上并行运行命令
pscp :把文件并行复制到多台远程主机上
prsync:使用rsync协议本地文件同步到远程多台主机上。
pnuke:在远程多台主机上并行killall某一进程
pslurp:把文件从远程多台主机上复制到本地主机上
网友评论