pssh有2种模式,一种是服务端与客户端之间基于证书,另外一种是不需要证书的,那么就需要root的密码

#wget http://peak.telecommunity.com/dist/ez_setup.py

python ez_setup.py

#wget http://parallel-ssh.googlecode.com/files/pssh-2.2.2.tar.gz

# tar zxvf pssh-2.2.2.tar.gz

# cd pssh-2.2.2

# python setup.py install



机器之间建立证书连接

A B C 三台机器


对A和B之间做证书连接,然后对A和C之间建立证书连接就行了。

ssh-keygen -t rsa

然后把/root/.ssh下的id_rsa.pub拷贝到目标机器/root/.ssh/下,并冲命令为authorized_keys

B机器也一样


然后再A上,新建一个txt文本文件,里面存放客户端机器ip

pssh -h 1.txt mkdir /home/ss

[1] 15:37:04 [SUCCESS] 192.168.1.9

[2] 15:37:04 [SUCCESS] 192.168.1.43


如果ssh端口非22的话,则需要在1.txt中写上去

[email protected]:9922

[email protected]:9922

[email protected]:22

--root用户可以证书登陆到目标机器



pscp 把文件并行地复制到多个主机上 注意 是从服务器端给客户端传送文件:

[root@server pssh-2.2.2]# pscp -h test.txt /etc/sysconfig/network /tmp/network //标示将本地的/etc/sysconfig


prsync 使用rsync协议从本地计算机同步到远程主机

[root@server ~]# pssh -h test.txt -P mkdir /tmp/etc

[root@server ~]# prsync -h test.txt -l dongwm -a -r /etc/sysconfig /tmp/etc //标示将本地的/etc/sysconfig目录递


pnuke 并行在远程主机杀进程:

[root@server ~]# pnuke -h test.txt syslog //杀死目标服务器的syslog进程,只要ps进程中出现相关词语 都能杀死

[1] 15:05:14 [SUCCESS] 192.168.9.102 9922

[2] 15:05:14 [SUCCESS] 192.168.9.104 9922


【测试】

pssh -h 1.txt "echo '192.168.1.1 www.inbank.cn' >> /etc/hosts"

然后跑到客户端下去查看


pssh -h 1.txt "sed -i 's/1/zzz/g' /home/1.txt“

也可以直接用正则


pssh -h 1.txt yum -y install subversion


多个linux命令

./pssh -h 1.txt "echo '11' >>/etc/hosts && mkdir /home/test"


####另:python 2.7安装

tar -zxvf Python-2.7.3.tgz

cd Python-2.7.3

./configure

make;make install

cd /usr/bin

mv python python.bak

ln -s /usr/local/bin/python python



#####如果觉的证书麻烦,可以试试以下方法#######

普通的pssh需要使用私钥验证,但是大多数情况下我们并不想将某一台机器的私钥推送至所有机器。

1. wget https://github.com/knktc/insecure_pssh/archive/master.zip

或者IE打开https://github.com/knktc/insecure_pssh 然后点击zip即可下载

2. 将master(insecure_pssh-master.zip) 拷贝至/usr/local

3. unzip master

4. cd insecure_pssh-master

5. 赋予其执行权限:

chmod +x pscp pslurp pssh

6. 直接使用即可,无需安装了。


新增用户,并初始化密码

[root@cobbler66666 pssh]# ./pssh -h hosts.txt -P "echo '123456'|passwd --stdin aa"

192.168.1.133: Changing password for user aa.

passwd: all authentication tokens updated successfully.

[1] 17:14:35 [SUCCESS] [email protected]

192.168.1.244: Changing password for user aa.

passwd: all authentication tokens updated successfully.

[2] 17:14:35 [SUCCESS] [email protected]



查看每个客户端的具体详情,例如,查看apache服务的状态

[root@cobbler66666 pssh]# ./pssh -h hosts.txt -P "/etc/init.d/httpd stop"

192.168.1.133: Stopping httpd: [FAILED]

192.168.1.133:

[1] 17:03:57 [SUCCESS] [email protected]

192.168.1.244: Stopping httpd:

192.168.1.244: [

192.168.1.244: FAILED

192.168.1.244: ]

192.168.1.244:

[2] 17:03:57 [SUCCESS] [email protected]



## pslurp用法-把文件或者目录并行地从多个远程主机复制到中心主机上

它从每台远程计算机收集指定的文件,但是并不覆盖文件的本地版本。pslurp 为每台远程计算机创建一个子目录并把指定的文件复制到此位置

./pslurp -r -h hosts.txt -L /home/dest /test inbank


-r:表示递归子目录

-L:创建子目录的位置

/home/dest是服务器的目录

/test是客户端的目录

inbank是/home/dest下的子目录


[root@cobbler66666 home]# tree dest/

dest/

├── 192.168.1.133

│ └── inbank

│ └── 133

└── 192.168.1.244

└── inbank

└── 244


4 directories, 2 files