付出,终有回报!
分类: 系统运维
2015-08-09 22:25:33
pssh的全称是parrallel-ssh,是一个用python编写的可以并发在多台服务器上批量执行命令的工具,它支持文件并行复制、远程并行执行命令、杀掉远程主机上的进程等。其中,文件并行复制是pssh的核心功能。
要使用pssh,必须要保证本地主机和要管理的远程主机间的单向信任,也就是要在本地主机和所有远端主机间配置无密码认证。
一、 实验环境
主机环境:rhel6.5
本地主机:172.25.18.100 kathy.example.com
远程主机:172.25.18.3
172.25.18.4 www1.tb1.com
软件下载: style="font-size:12.0pt;font-family:Times New Roman;color:windowtext;vertical-align:baseline;">
官网: style="font-size:12.0pt;font-family:Times New Roman;color:windowtext;vertical-align:baseline;">
二、配置无密码认证
[root@kathy ~]# ssh-copy-id 172.25.18.3
[root@kathy ~]# ssh 172.25.18.3
Last login: Sat Aug 8 10:06:20 2015
[root@www ~]#
对172.25.18.4主机的操作和172.25.18.3相同。确保中心主机可以无密码访问所有操作主机。
三、pssh的安装与使用
本次实验中用到的软及版本是pssh-2.3.1-4.1.x86_64.rpm,此软件还需要一个依赖包python-pssh-2.3.1-4.1.x86_64.rpm。
1. 软件安装
[root@kathy soft]# yum localinstall -y pssh-2.3.1-4.1.x86_64.rpm python-pssh-2.3.1-4.1.x86_64.rpm
[root@kathy soft]# rpm -ql pssh
/usr/bin/pnuke #并行killall某一进程
/usr/bin/prsync #使用rsync协议同步文件
/usr/bin/pscp #传输文件,类似scp
/usr/bin/pslurp #从远程主机拷贝文件到本地,与pscp相反
/usr/bin/pssh #并行运行命令
...
熟悉python语言的小伙伴可以直接看代码:
# file /usr/bin/pssh
/usr/bin/pssh: Python script, ASCII text executable
2. 使用pssh在多台主机上并行运行命令
通过pssh查看远程主机的主机名
pssh常用参数:
-i 在远程主机上执行命令后显示标准输出和标准错误
-P 在执行远程命令时,输出执行结果
-h 指定远程主机列表文件
-H 指定一个主机名或IP地址
-o 输出内容重定向到一个文件
-e 执行错误重定向到一个文件
-t 设置命令执行的超时时间
pscp、prsync、pnuke和pslurp的参数含义与用法与pssh命令基本相同。
3. 使用pscp命令把本地文件并行拷贝到远程主机
4. 使用pslurp命令把远程主机文件复制到本地
-L 指定本地路径,用于存储从远程主机传过来的文件
把远程主机的/etc/passwd文件复制到本地/mnt目录并改名为passwd.bak