云计算百科
云计算领域专业知识百科平台

PSSH-并发在多台服务器上批量执行命令的工具

介绍

pssh全称是parallel-ssh,是一个Python编写的可以并发在多台服务器上批量执行命令的工具,

它支持文件并行复制、远程并行执行命令、杀掉远程主机上的进程等。

前提:使用pssh工具包,必须保证本地主机和管理的远程主机之间的单向信任,

也就是要在本地主机和所有远程服务器上配置密钥认证访问。

一、建立本地主机和管理的远程主机之间的单向信任

[fieldyang@master~]$ mkdir ~/.ssh

mkdir:无法创建目录"/root/.ssh":文件已存在

[fieldyang@master~]$ chmod 700 ~/.ssh

[fieldyang@master~]$ cd ~/.ssh

1、使用ssh-keygen命令生成基于SSH协议的RSA秘钥,提示保存位置及密钥时,选择默认,方便使用

[fieldyang@master.ssh]$ ssh-keygen -t rsa

Generatingpublic/private rsa key pair.

Enterfile in which to save the key (/root/.ssh/id_rsa): <—–可以输入存放密钥的地址

Enterpassphrase (empty for no passphrase): <—–输入密语,可以为空

Entersame passphrase again: <—–确认密语,可以为空

Youridentification has been saved in /root/.ssh/id_rsa. <—–生成的密钥

Yourpublic key has been saved in /root/.ssh/id_rsa.pub.<—–生成的公钥

2、将本地节点生成的公钥文件整合为一个authorized_keys文件,并进行授权

[fieldyang@master.ssh]$ cd ~/.ssh

[fieldyang@master.ssh]$ cat /root/.ssh/id_rsa.pub > authorized_keys

[fieldyang@master.ssh]$ chmod 600 ~/.ssh/authorized_keys

3、将authorized_keys文件复制到远程主机上

4、测试ssh密钥认证是否成功建立

5、重复以上1~4,在所有的远程主机上执行,即可实现本地主机对所有远程主机的单向通信

二、安装使用

1、安装

先安装ez_setup.py,ez_setup.py是python官方给出的一个安装setuptools的工具,利用它,我们可以很轻松用命令行就自动完成安装过程。 [root@nfs-server test]# wget http://peak.telecommunity.com/dist/ez_setup.py [root@nfs-server test]# wget http://files.opstool.com/files/pssh-2.3.tar.gz

2、解压安装包并安装

tar xf pssh-2.3.tar.gz
cd pssh-2.3
python setup.py build
running build
running build_py
running build_scripts

python setup.py install

pssh –version 2.3

①pssh 多主机并行执行命令 获取每台机器上的时间,先在管理机上新建ip.txt (一定要搞清楚各服务器的登录方式,端口还有用户登录权限)

执行命令:pssh -p 11 -i -h ip.txt -A “date"

一:复制文件到远程服务器指定位置(其中-A的意思就是使用手动密码  不使用ssh key,位置也要放正确了) [root@yufuka-1 pssh-2.3.1]# pscp -h ip.txt -A /tmp/yufuka.py /tmp/

二:传目录 [root@yufuka-1 pssh-2.3.1]# pscp -r -h ip.txt -A test/ /tmp/dir3

三:删除目录下的指定文件 [root@yufuka-1 pssh-2.3.1]# pssh -h ip.txt -A rm -f /tmp/yufuka.py

四、pslurp从远程拉取文件到本地,在本地自动创建目录名为远程主机ip的目录,将拉取的文件放在对应主机IP目录下

#格式:pslurp -h ip.txt -L <本地目录>  <远程目录/文件>  <本地重命名> #拉取文件 pslurp -h ip.txt -L /root/ /root/1.jpg picture ll /root/172.16.1.13/picture -rw-r–r– 1 root root 148931 Jan  9 15:41 /root/172.16.1.13/picture #拉取目录 pslurp -r -h ip.txt -L /root/ /root/test temp ll -d /root/172.16.1.13/temp/ drwxr-xr-x 2 root root 23 Jan  9 15:49 /root/172.16.1.13/temp/

#pnuke:远程批量killall pnuke -h ip.txt nginx

赞(0)
未经允许不得转载:网硕互联帮助中心 » PSSH-并发在多台服务器上批量执行命令的工具
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!