分享

服务器批量执行工具 PSSH

howtodown 发表于 2014-5-17 15:30:35 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 2 9349
本帖最后由 howtodown 于 2014-5-17 15:33 编辑
问题导读:
1.通过ssh如何操作多台服务器?
2.PSSH批量执行的原理是什么?
3.PSSH如何使用?
4.PSSH如何批量上传、下载、同步?
扩展:
5.PSSH与puppet对比,优点缺点是什么?


操作一台服务器的时候可以 ssh,操作多台服务器可以开多个窗口多个 ssh,那操作很多台服务器呢?
我们的一个 Oracle Gird Engine 集群上大概有60多台 Ubuntu 服务器作执行节点,这些服务器操作系统和软件配置完全一样(上线后由 puppet 统一配置),有时候我们需要在这些服务器上做同样的操作,这个时候特别适合使用 PSSH 这种 ssh 批量操作工具。
当然,如果对 Python 不恐惧的话也可以用 Fabric 批量执行服务器任务
下载和安装 pssh:

  1. $ git clone http://code.google.com/p/parallel-ssh/
  2. $ cd parallel-ssh/
  3. $ sudo python setup.py install
复制代码


批量执行
首先新建一个服务器列表文件,把需要操作的服务器的 hostname(或者 IP 地址)加进去,然后就可以批量执行 uptime 命令了,-l 指定登录用户名,-A 询问密码,-h 指定服务器列表文件:
  1. $ vi grids
  2. grid01
  3. grid02
  4. grid03
  5. grid04
  6. grid05
  7. $ pssh -i -l root -A -h grids 'uptime'
  8. Warning: do not enter your password if anyone else has superuser
  9. privileges or access to your account.
  10. Password:
  11. [1] 05:42:09 [SUCCESS] grid01
  12. 11:42:09 up 620 days, 20:30,  0 users,  load average: 6.09, 6.14, 6.13
  13. [2] 05:42:09 [SUCCESS] grid03
  14. 11:42:09 up 620 days, 20:29,  0 users,  load average: 9.01, 9.04, 9.05
  15. [3] 05:42:09 [SUCCESS] grid05
  16. 11:42:09 up 620 days, 20:10,  0 users,  load average: 8.46, 8.18, 8.10
  17. [4] 05:42:09 [SUCCESS] grid04
  18. 11:42:09 up 620 days, 20:25,  0 users,  load average: 6.00, 6.01, 6.05
  19. [5] 05:42:10 [SUCCESS] grid02
  20. 11:42:10 up 606 days,  2:07,  0 users,  load average: 6.03, 6.02, 6.01
复制代码
批量上传
批量上传本地文件 linux-3.14.3.tar.xz 到服务器上的 /tmp 目录:
  1. $ pscp -l root -A -h grids linux-3.14.3.tar.xz /tmp/
  2. Warning: do not enter your password if anyone else has superuser
  3. privileges or access to your account.
  4. Password:
  5. [1] 05:56:16 [SUCCESS] grid01
  6. [2] 05:56:16 [SUCCESS] grid03
  7. [3] 05:57:04 [SUCCESS] grid05
  8. [4] 05:57:04 [SUCCESS] grid04
  9. [5] 05:57:05 [SUCCESS] grid02
复制代码
批量下载
批量下载服务器上的某文件到本地,不用担心重名问题,因为 pssh 已经建立了 grid01, grid02, …, grid05 目录来存放下载的文件:
  1. $ pslurp -l root -h grids -A /tmp/linux-3.14.3.tar.xz .
  2. Warning: do not enter your password if anyone else has superuser
  3. privileges or access to your account.
  4. Password:
  5. [1] 06:06:01 [SUCCESS] grid01
  6. [2] 06:06:01 [SUCCESS] grid03
  7. [3] 06:06:06 [SUCCESS] grid04
  8. [4] 06:06:06 [SUCCESS] grid02
  9. [5] 06:06:06 [SUCCESS] grid05
  10. $ ls
  11. grid01  grid02  grid03  grid04  grid05  grids  linux-3.14.3.tar.xz  parallel-ssh
复制代码

批量同步
有时候我们需要保持开发机上(某目录里)的数据和服务器上的数据一致:
  1. $ prsync -l root -h grids -A -r develop/ /tmp/production/
  2. Warning: do not enter your password if anyone else has superuser
  3. privileges or access to your account.
  4. Password:
  5. [1] 06:12:52 [SUCCESS] grid05
  6. [2] 06:12:52 [SUCCESS] grid01
  7. [3] 06:12:52 [SUCCESS] grid04
  8. [4] 06:12:52 [SUCCESS] grid02
  9. [5] 06:12:52 [SUCCESS] grid03
复制代码





参考vpsee

已有(2)人评论

跳转到指定楼层
ffcxyq 发表于 2014-6-11 11:22:24
路过,学习一下!!
回复

使用道具 举报

junzi234 发表于 2014-6-12 09:46:04
mark 留着备用
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条