红联Linux门户
Linux帮助

使用PSSH批量操作Linux服务器

发布时间:2015-09-03 15:07:34来源:linux网站作者:十年后的卢哥哥

简介

服务器多了,有一个问题就是如何批量快速操作多台服务器,在网上搜到了PSSH工具,试用了一下发现挺好用,推荐给大家。

pssh是一个python编写的可以在多台服务器上执行命令的轻量级管理工具,同时支持拷贝文件,python版本大于2.4即可,项目地址:parallel-ssh。


安装

$ wget http://parallel-ssh.googlecode.com/files/pssh-2.3.1.tar.gz

$ tar -xzvf pssh-2.3.1.tar.gz

$ cd pssh-2.3.1

$ python setup.py install


PSSH相关参数

-h 执行命令的远程主机列表文件,文件内容格式[user@]host[:port]
如 test@127.0.0.2:229
-H 执行命令主机,主机格式 user@ip:port
-l 远程机器的用户名
-p 一次最大允许多少连接
-P 执行时输出执行信息
-o 输出内容重定向到一个文件
-e 执行错误重定向到一个文件
-t 设置命令执行超时时间
-A 提示输入密码并且把密码传递给ssh(如果机器都是ssh key打通的则无需加-A)
-O 设置ssh一些选项
-x 设置ssh额外的一些参数,可以多个,不同参数间空格分开
-X 同-x,但是只能设置一个参数
-i 显示标准输出和标准错误在每台host执行完毕后


用法示例

先创建一个文本文件hosts.txt,存放要操作的机器列表,格式为[user@]host[:port]:

user1@127.0.0.1:1254
user2@127.0.0.2
127.0.0.3

用pssh查看所有服务器的uptime:

$ pssh -i -h hosts.txt 'uptime'

可根据需要把 update 换为别的命令


附加工具

pssh安装后附加了一些很好用的工具,主要有:
1、pscp

作用:传输文件到多个hosts,类似scp

示例:

$ pscp -h hosts.txt foo.txt /home/foo.txt

2、pslurp

作用:从多台远程机器拷贝文件到本地

示例:

$ pslurp -h hosts.txt /etc/hosts local_dir

3、pnuke

作用:并行在远程主机杀进程

示例:

$ pnuke -h hosts.txt -l root java

4、prsync

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

示例:

$ prsync -r -h hosts.txt foo /home/foo


Linux集群管理工具PSSH批量管理服务器:http://www.linuxdiyf.com/linux/11385.html

Fabric批量远程执行操作:http://www.linuxdiyf.com/linux/12584.html

使用Ansible批量管理远程服务器:http://www.linuxdiyf.com/linux/12352.html

Linux常用网络工具:批量主机服务扫描之netcat:http://www.linuxdiyf.com/linux/12493.html

Linux常用网络工具:批量主机服务扫描之nmap:http://www.linuxdiyf.com/linux/12486.html