fanwenjieok 2017-04-12
一.场景介绍:
同时给上千台Linux服务器执行一个命令,拷贝一个文件,杀一个进程等,有什么简化运维管理的工具呢?在小型使用中我都是使用for循环,数量巨大,一方面不确定操作是否成功,一方面for循环语句性能不好估计且是不是同步并行执行。
二.准备工作
1.下载软件包:https://pypi.python.org/pypi/pssh/2.3.1
2.解压pssh-2.3.1.tar.gz,并安装pssh工具
三.使用方法
用法:PSSH [选项]命令[…]
-h 执行命令的远程主机列表,文件内容格式[user@]host[:port]
如 [email protected]:229
-H 执行命令主机,主机格式 user@ip:port
-l 远程机器的用户名
-p 一次最大允许多少连接
-P 执行时输出执行信息
-o 输出内容重定向到一个文件
-e 执行错误重定向到一个文件
-t 设置命令执行超时时间
-A 提示输入密码并且把密码传递给ssh(如果私钥也有密码也用这个参数)
-O 设置ssh一些选项
-x 设置ssh额外的一些参数,可以多个,不同参数间空格分开
-X 同-x,但是只能设置一个参数
-i 显示标准输出和标准错误在每台host执行完毕后其他工具:
pscp 传输文件到多个hosts,类似scp(pscp工具也是经常可以用到)
pscp -h host /root/host /root/ #根据host文件下的主机IP地址,从本地/root/目录下 发送到目标IP的/root/目录下
pslurp 从多台远程机器拷贝文件到本地
pnuke 并行在远程主机杀进程
pnuke -h hosts.txt -l irb2 java
prsync 使用rsync协议从本地计算机同步到远程主机
prsync -r -h hosts.txt -l irb2 foo /home/irb2/foo
以上,如果大家觉得有什么问题,咱们可以交流交流,谢谢!