pssh功能
在多服务器批量执行命令
文件并行复制
远程并行执行命令
杀掉远程主机进程
批量在远程主机行上传、下载文件
pssh的应用
一、安装
[root@web1 ~]# yum install pssh
二、创建本地主机密钥
[root@web1 ~]# mkdir ~/.ssh
[root@web1 ~]# chmod 700 ~/.ssh
[root@web1 ~]# cd ~/.ssh/
[root@web1 .ssh]# ssh-keygen -t rsa
[root@web1 .ssh]# cat id_rsa.pub > authorized_keys
[root@web1 .ssh]# chmod 600 authorized_keys
将公钥上传到远程主机
[root@web1 .ssh]# scp authorized_keys root@node1:/root/.ssh/authorized_keys
[root@web1 .ssh]# scp authorized_keys root@node2:/root/.ssh/authorized_keys
[root@node1 ~]# chmod 700 /root/.ssh/
[root@node1 ~]# chmod 600 /root/.ssh/authorized_keys
[root@web1 .ssh]# ssh node1
Last login: Sun Mar 20 21:44:27 2016 from 192.168.1.105
[root@node1 ~]# exit
三、应用实例
1、pssh指定指定远程主机执行命令(-H指定主机名或IP)
[root@web1 ~]# pssh -H node1 date [1] 04:37:09 [SUCCESS] node1 [root@web1 ~]# pssh -H node2 date [1] 04:37:12 [SUCCESS] node2
2、创建主机文件列表(在执行批量操作时用-h选项指定主机列表)
[root@web1 ~]# cat /etc/pssh/hosts
node1
node2
[root@web1 ~]# pssh -i -h /etc/pssh/hosts "uptime" [1] 04:40:52 [SUCCESS] node2 22:21:44 up 40 min, 1 user, load average: 0.02, 0.04, 0.00 [2] 04:40:52 [SUCCESS] node1 22:21:44 up 40 min, 1 user, load average: 0.02, 0.04, 0.00
3、批量执行命令
[root@web1 ~]# pssh -i -h /etc/pssh/hosts "netstat -ntlp"
4、批量安装软件
[root@web1 ~]# pssh -i -h /etc/pssh/hosts "yum install pssh -y"
5、批量上传
[root@web1 ~]# pscp.pssh -h /etc/pssh/hosts keepalived-1.2.19.tar.gz /root/
6、批量解压
[root@web1 ~]# pssh -i -h /etc/pssh/hosts "tar -zxvf keepalived-1.2.19.tar.gz"
7、批量重启服务
[root@web1 ~]# pssh -i -h /etc/pssh/hosts "/etc/init.d/mysqld restart" [1] 03:43:01 [SUCCESS] node2 Shutting down MySQL...[ OK ] Starting MySQL.[ OK ] [2] 03:43:17 [SUCCESS] node1 Shutting down MySQL... SUCCESS! Starting MySQL........... SUCCESS!
8、执行多条命令
[root@web1 ~]# pssh -i -h /etc/pssh/hosts -o /etc/pssh/info "uptime;uname -a" [1] 03:46:59 [SUCCESS] node2 22:49:31 up 22 min, 1 user, load average: 0.00, 0.01, 0.05 Linux node2 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux [2] 03:47:01 [SUCCESS] node1 22:49:32 up 22 min, 1 user, load average: 0.02, 0.11, 0.12 Linux node1 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux [root@web1 ~]# cat /etc/pssh/info/node1 22:49:32 up 22 min, 1 user, load average: 0.02, 0.11, 0.12 Linux node1 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
9、批量 上传目录
[root@web1 ~]# pscp.pssh -h /etc/pssh/hosts -r /root/shell /root [1] 03:49:53 [SUCCESS] node2 [2] 03:49:53 [SUCCESS] node1
10、下载远程主机的文件到本机(-L表示下载的路径,后面跟远程文件并重命名)
[root@web1 ~]# pslurp -h /etc/pssh/hosts -L /root/ /etc/hosts host.txt [root@web1 ~]# ls node1 host.txt
10、拷贝目录到本地
[root@web1 ~]# pslurp -h /etc/pssh/hosts -r -L /root/ /home/hm mmm [root@web1 ~]# ls node1/ host.txt mmm [root@web1 ~]# ls node2/ host.txt mmm
11、同步文件到远程主机-l +用户
[root@web1 ~]# prsync -h /etc/pssh/hosts -a -r /root/name.txt /tmp [1] 04:08:44 [SUCCESS] node2 [2] 04:08:44 [SUCCESS] node1 [root@node1 ~]# ls /tmp/ name.txt yum.log
12、加-z使用压缩传输
[root@web1 ~]# prsync -h /etc/pssh/hosts -az -r /var/log /tmp [1] 04:11:59 [SUCCESS] node2 [2] 04:11:59 [SUCCESS] node1 [root@node1 ~]# ls /tmp/ log name.txt yum.log
13、批量杀死某个进程
[root@web1 ~]# pnuke -h /etc/pssh/hosts httpd