1pssh介绍

pssh可在发在多台机器上批量执行命令的工具,它支持文件并行复制,远程命令执行,杀掉远程主机上的进程等
等。当进行再远程主机批量上传下载的时候

2pssh的使用

在使用pssh之前,必须要保证管理主机和本地主机进行过密钥的认证,或者是在进行批量时,没有做过密钥认
证,但是必须保证被管理的多台主机的密码相同。

3安装

这个软件在epel源中有,需要下载epel源文件后,可以用yum来安装
CentOS 6
wget-O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
CentOS 7
wget-O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

4,常用命令

pssh:在远程多台主机上并行运行命令
pscp :把文件并行复制到多台远程主机上
prsync :使用rsync协议本地文件同步到远程多台主机上。
pnuke :在远程多台主机上并行killall某一进程
pslurp :把文件从远程多台主机上复制到本地主机上

5,pssh的常用参数

    -h   HOST_FILE   后边跟远程主机列表(ip)
    -H   HOST_STRING   后边跟远程主机名或者ip地址
    -l   USER  指定远程主机的用户名
    -p  PAR   指定pssh最大的并行线程数。
    -o  将输出的内容重定向到一个指定的文件中
    -O 指定ssh参数的具体配置
    -e  将执行错误重定向到一个指定的文件中
    -t  设定命令执行超时时间
    -x  传递ssh命令的一些参数    
    -i  在远程主机上执行命令完成后显示标准输出和标准错误
    -P  在执行远程命令时,输出执行结果

6,使用方法

生成密钥文件,并将文件拷贝到要控制的主机上

[root@localhost ~] ssh-keygen
[root@localhost ~] ssh-copy-id -i 192.168.8.133

查看远程主机上查看主机名

[root@localhost ~] pssh -H 192.168.8.133 -A -i hostname
Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password: 
[1] 09:29:05 [SUCCESS] 192.168.8.133
localhost.localdomain

查看远程主机文件夹下的目录

[root@localhost ~] pssh -H 192.168.8.133 -A -i ls -l /tmp/
Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password: 
[1] 09:30:20 [SUCCESS] 192.168.8.133

关闭远程主机的Apache服务

[root@localhost ~] pnuke  -H 192.168.8.133   httpd
[1] 09:32:10 [SUCCESS] 192.168.8.133

远程主机拷贝文件到本地主机的root目录下,并改名为test1

[root@localhost ~] pslurp -H 192.168.8.133 -L /root/ /root/test test1
[1] 09:35:21 [SUCCESS] 192.168.8.133
注:在root目录下会自动创建一个和目标主机IP地址同名的目录,文件在此目录中

将多个主机的名称写入到文件中批量执行

[root@localhost ~] vim host.txt 

192.168.8.133
192.168.8.128
[root@localhost ~] pssh -h host.txt -A -i hostname
Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password: 
[1] 09:53:42 [SUCCESS] 192.168.8.133
localhost.localdomain
[2] 09:53:42 [SUCCESS] 192.168.8.128
localhost