pssh使用指南

pssh 用于同时管理多台服务器,在安装Hadoop时可以同步Hadoop已经配置好的安装文件,十分方便,本文将介绍pssh的基本命令和使用方法。由于pssh基于python实现的,所以在安装之前务必保证安装好python2.6以上。

一 安装:


先安装ez_setup.py,ez_setup.py是python官方给出的一个安装setuptools的工具,利用它,我们可以很轻松用命令行就自动完成安装过程。
#wget http://peak.telecommunity.com/dist/ez_setup.py
#python ez_setup.py
接下来下载pssh安装包:
#wget http://parallel-ssh.googlecode.com/files/pssh-2.3.tar.gz
如果Google被墙了可以使用这个站点:
#wget http://files.opstool.com/files/pssh-2.3.tar.gz
解压安装包:
# tar zxvf pssh-2.3.tar.gz
# cd pssh-2.3
安装:
# python setup.py install

二 pssh使用 :


(假设ssh已做好SSH信任,如果没有的话会要求输入密码关于ssh信任可以参考 http://be-evil.org/linux-ssh-login-without-using-password.html)

pssh工具包主要有5个程序:

pssh 多主机并行运行命令

pscp 传输文件到多个hosts,他的特性和scp差不多

pslurp 从多台远程机器拷贝文件

pnuke kill远程机器的进程

pslurp 从远程主机考本文件到本地

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

参数说明:

-h 执行命令的远程主机列表,是一个文本文件,主机ip或主机名以回车符分隔。

-l 远程机器的用户名

-p 一次最大允许多少连接(小写)

-o 输出内容重定向到一个文件(小写)

-e 执行错误重定向到一个文件

-t 设置命令执行的超时时间

-A 提示输入密码并且把密码传递给ssh

-O 设置ssh参数的具体配置,参照ssh_config配置文件(大写)

-x 传递多个SSH 命令,多个命令用空格分开,用引号括起来

-X 同-x 但是一次只能传递一个命令

-i 显示标准输出和标准错误在每台host执行完毕后

-I 读取每个输入命令,并传递给ssh进程 允许命令脚本传送到标准输入

-P 打印输出(大写)
下面以管理一台主机为例:
host.txt的内容:
[root@centos pssh-2.3]# cat host.txt
192.168.1.199

1 pssh 多主机并行运行命令


[root@centos pssh-2.3]# pssh -P -h host.txt uptime
192.168.1.199: 11:31:06 up 5 min, 2 users, load average: 0.24, 0.13, 0.07

2 pscp 把文件并行地复制到多个主机上


从服务器端给客户端传送文件:
[root@centos pssh-2.3]# pscp -h host.txt /etc/profile /tmp/
[1] 11:36:55 [SUCCESS] 192.168.1.199
表示将本地的/etc/sysconfig/network传到目标服务器的/tmp/network

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


[root@centos pssh-2.3]# prsync -h host.txt -l root -a -r /etc/sysconfig /tmp/
[1] 11:38:47 [SUCCESS] 192.168.1.199
表示将本地的/etc/sysconfig目录递归同步到目标服务器的 /tmp/目录下,并保持原来的时间戳,使用用户 root

4 pslurp 将文件从远程主机复制到本地


和pscp方向相反:
[root@centos pssh-2.3]# pslurp -h host.txt -L /tmp/test -l root /tmp/network test
[1] 11:40:54 [SUCCESS] 192.168.1.199
表示将目标服务器的/tmp/network文件复制到本地的/tmp/test目录下,并更名为test
在/tmp/test目录下即可看见192.168.1.199这个目录,目录中存放复制过来的文件。
[root@centos pssh-2.3]# cd /tmp/test
[root@centos test]# ls
192.168.1.199

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


[root@centos pssh-2.3]# pnuke -h host.txt syslog
[1] 11:45:12 [SUCCESS] 192.168.1.199
//杀死目标服务器的syslog进程

你可能感兴趣的:(linux,ssh,pssh,批量管理)