PSSH 的意思是 Parallel SSH,并行的SSH,很好理解,PSSH 可以让一条命令在多个服务器上同时执行

这就简化了集群的管理工作,例如想查看一下各台服务器现在的负载状况,就可以通过 PSSH 在所有服务器上执行 w 命令

pssh -h hostlist -i w

其中的 hostlist 是一个自定义的文本文件,里面记录着服务器列表信息

// hostlist

root@192.168.31.207:22
root@192.168.31.158:22

PSSH 示例

pssh 是最基本的命令,PSSH 还提供了其他方便的命令,下面看几个示例

  • 从本地拷贝文件到各个服务器

例如 把本机的 /root/fileA 拷贝到各个服务器的 /tmp/fileA

pscp -h hostlist /root/fileA /tmp/fileA

  • 从各个服务器拷贝文件到本机

例如各服务器中都有文件 /home/err_log,想把他们都拿到本机查看,放到本机的 /tmp/test 目录下,并改名为 log

pslurp -h hostlist -L /tmp/test /home/err_log log

到 /tmp/test 下查看

  • 同步目录

例如本机有一个文件夹 /tmp/test,其中有子目录和文件,想把这个文件夹同步到各服务器的 /home

prsync -h hostlist -a -r /tmp/test /home

执行完成后,到服务器中查看是否同步成功

PSSH 安装

  • 下载

https://pypi.python.org/packages/source/p/pssh/pssh-2.3.1.tar.gz

  • 解压

tar xzvf pssh-2.3.1.tar.gz

  • 安装

cd pssh-2.3.1
python setup.py install

  • 测试

pssh --help

输出帮助信息,说明安装成功

对 192.168.31.207 这台服务器执行 date 命令来测试一下

pssh -H root@192.168.31.207 -A -i date

输入密码后,就显示出了 date 命令的执行结果

  • 配置 SSH 免密码

如果每次都需要输入密码的话,就很麻烦了,可以对各台服务器配置免密码

在本机执行

ssh-keygen

(执行后会有多个输入提示,不用输入任何内容,全部直接回车即可)

ssh-copy-id -i /root/.ssh/id_rsa -p 22 root@192.168.31.207

(重复执行这条命令,改变后面的服务器信息即可)

再次执行 pssh 命令,就不会提示输入密码了

pssh -H root@192.168.31.207 -i date

PSSH 非常简单,但为我们的服务器管理工作提供了很大的便利,从安装到用起来都花费不了1小时,轻便好用

最新文章

  1. CentOS下安装使用start-stop-daemon
  2. 总结libevent安装方法
  3. mysql测试题
  4. BingMap
  5. Java api 入门教程 之 JAVA的Random类
  6. SQL到NOSQL的思维转变
  7. 20145235《Java程序设计》课程总结
  8. Uva 1220,Hali-Bula 的晚会
  9. 使用Firebug和FirePHP调试PHP
  10. android面试题之四
  11. java线程中的sleep和wait区别
  12. 测试数据库sql声明效率
  13. [LeetCode] Buddy Strings 伙计字符串
  14. BBS论坛(三)
  15. 6-4 The present perfect
  16. LNMP环境搭建:Nginx安装、测试与域名配置
  17. DataGridView 使用精华
  18. redie config 详解
  19. python 同步与异步性能区别
  20. java生成webservice方法

热门文章

  1. Ubuntu 16.04重启Nautilus
  2. Maven:程序包org.apache.log4j不存在问题处理
  3. Eclipse启动时禁用不必要的验证。
  4. 关于TagHelper的那些事情——自定义TagHelper(TagHelper的Attributes)
  5. raymarching
  6. django中根据模型生成页面的脚手架app-groundwork
  7. Android SDK Manager 更新
  8. 云计算之路-试用Azure:上不了高速的跑车,无法跨Cloud Service的DNS服务器
  9. C/C++中传值和传地址(引用)
  10. iOS extern 和 #define 使用