pssh远程批量执行命令_pssh 指定脚本

105 阅读3分钟

3)创建主机列表文件



[root@proxy ~]# cat /root/host.txt //每行一个用户名、IP或域名 … … root@host1 host2 host3 … …


## 步骤二:使用密码批量、



多并发远程其他主机


1) 语法格式



[root@proxy ~]# man pssh //通过man帮助查看工具选项的作用


**pssh提供并发远程连接功能**  
 -A 使用密码远程其他主机(默认使用密钥)  
 -i 将输出显示在屏幕  
 -H 设置需要连接的主机  
 -h 设置主机列表文件  
 -p 设置并发数量  
 -t 设置超时时间  
 -o dir 设置标准输出信息保存的目录  
 -e dir 设置错误输出信息保存的目录  
 -x 传递参数给ssh


2)使用密码远程多台主机执行命令,屏幕显示标准和错误输出信息



[root@proxy ~]# pssh -i -A -H 'host1 host2 host3' \

-x '-o StrictHostKeyChecking=no' echo hello


3)使用密码远程多台主机执行命令,不显示标准和错误输出信息,通过读取host.txt读取主机信息



[root@proxy ~]# pssh -A -h host.txt \

-x '-o StrictHostKeyChecking=no' echo hello


## 步骤三:使用密钥批量、多并发远程其他主


1) 生成密钥并发送密钥到其他主机



[root@proxy ~]# ssh-keygen -N '' -f /root/.ssh/id_rsa //非交互生成密钥文件 [root@proxy ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub host1 [root@proxy ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub host2 [root@proxy ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub host3


2)使用密钥远程其他主机



[root@proxy ~]# pssh -h host.txt -x '-o StrictHostKeyChecking=no' echo hello


3)使用密钥远程其他主机,将标准输出信息写入到/tmp目录



[root@proxy ~]# pssh -h host.txt -o /tmp/ -x '-o StrictHostKeyChecking=no' echo hello


## 步骤四:批量、多并发拷贝数据到其他主机


1) 语法格式



[root@proxy ~]# man pscp.pssh //通过man帮助查看工具选项的作用


pscp.pssh提供并发拷贝文件功能  
 -r 递归拷贝目录  
 其他选项基本与pssh一致


2)将本地的etc.tar.gz拷贝到远程主机的根目录下



[root@proxy ~]# pscp.pssh -h host.txt \

-x '-o StrictHostKeyChecking=no' etc.tar.gz /


3)递归将本地的/etc目录拷贝到远程主机的/tmp目录下



[root@proxy ~]# pscp.pssh -r -h host.txt \

-x '-o StrictHostKeyChecking=no' /etc /tmp


## 步骤五:批量、多并发从其他主机下载数据到本机


1) 语法格式



[root@proxy ~]# man pslurp //通过man帮助查看工具选项的作用


pslurp提供远程下载功能 选项与  
 pscp.pssh基本一致


2)将远程主机的/etc/目录,拷贝到当前目录下,存放在对应IP下的tmp目录



[root@proxy ~]# pslurp -r -h host.txt -x '-o StrictHostKeyChecking=no' /etc /tmp


3)将远程主机的/etc/目录,拷贝到media下,存放在对应IP下的tmp目录



[root@proxy ~]# pslurp -r -h host.txt -x '-o StrictHostKeyChecking=no' \

-L /media /etc /tmp


## 步骤六:批量、多并发杀死其他主机的进程


1) 语法格式



[root@proxy ~]# man pnuke//通过man帮助查看工具选项的作用


pnuke提供远程杀死进程的功能  
 选项与pssh基本一致


2)将远程主机上的sleep进程杀死



[root@proxy~]#pnuke-hhost.txt-x'-o StrictHostKeyChecking=no' sleep


3)将远程主机上的test相关脚本都杀死(如:test1,testtt,test2等等)