介绍
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
评论前必须登录!
注册