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
--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