首页 > 代码库 > pssh 批量管理执行
pssh 批量管理执行
pssh 是一个python写的批量执行工具,非常适合30台服务器以内的一些重复性的操作
安装很简单,只要python版本2.4 以上的都行
用这个工作最好把机器做做好ssh信任关系,不然很麻烦 每次执行 都需要输入密码
[root@localhost ~]# wget https://pypi.python.org/packages/source/p/pssh/pssh-2.3.1.tar.gz--2014-05-22 20:56:16-- https://pypi.python.org/packages/source/p/pssh/pssh-2.3.1.tar.gzResolving pypi.python.org... failed: Name or service not known.wget: unable to resolve host address “pypi.python.org”[root@localhost ~]# wget https://pypi.python.org/packages/source/p/pssh/pssh-2.3.1.tar.gz--2014-05-22 20:56:27-- https://pypi.python.org/packages/source/p/pssh/pssh-2.3.1.tar.gzResolving pypi.python.org... 103.245.222.175Connecting to pypi.python.org|103.245.222.175|:443... connected.HTTP request sent, awaiting response... 200 OKLength: 23427 (23K) [application/octet-stream]Saving to: “pssh-2.3.1.tar.gz”100%[========================================================================================================================================================================>] 23,427 124K/s in 0.2s 2014-05-22 20:56:28 (124 KB/s) - “pssh-2.3.1.tar.gz” saved [23427/23427][root@localhost ~]# tar zxf pssh-2.3.1.tar.gz [root@localhost ~]# cd pssh-2.3.1[root@localhost pssh-2.3.1]# python setup.py install安装完毕后会有如下提示copying build/scripts-2.6/pslurp -> /usr/bincopying build/scripts-2.6/pssh -> /usr/bincopying build/scripts-2.6/pnuke -> /usr/bincopying build/scripts-2.6/pscp -> /usr/bincopying build/scripts-2.6/prsync -> /usr/bincopying build/scripts-2.6/pssh-askpass -> /usr/bin
这几个就是他的命令,命令也相对来说很简单,不明白的可以看help,英文说明简单到我个文盲都能看懂
pssh 多主机并行运行命令
pscp 传输文件到多个hosts,他的特性和scp差不多
pslurp 从多台远程机器拷贝文件
pnuke kill远程机器的进程
pslurp 从远程主机考本文件到本地
prsync 使用rsync协议从本地计算机同步到远程主机
pssh:
-h 执行命令的远程主机列表 或者 -H user@ip:port 文件内容格式[user@]host[:port]
-l 远程机器的用户名
-p 一次最大允许多少连接
-o 输出内容重定向到一个文件
-e 执行错误重定向到一个文件
-t 设置命令执行的超时时间
-A 提示输入密码并且把密码传递给ssh
-O 设置ssh参数的具体配置,参照ssh_config配置文件
-x 传递多个SSH 命令,多个命令用空格分开,用引号括起来
-X 同-x 但是一次只能传递一个命令
-i 显示标准输出和标准错误在每台host执行完毕后
-I 读取每个输入命令,并传递给ssh进程 允许命令脚本传送到标准输入
-P 打印输出
[root@localhost ~]# pssh -H 192.168.1.100 -i ls #单台机器 -H 参数[1] 03:12:05 [SUCCESS] 192.168.1.100anaconda-ks.cfghellotestinstall.loginstall.log.syslognginxocaml-4.01.0.tar.gzpasswordrsync-3.0.4rsync-3.0.4.tar.gzrsync_install.shtest.shzabbix-2.0.8zabbix-2.0.8.tar.gz[root@localhost ~]# cat ip.txt #多台机器的话可以把IP写进一个文件里面 用-h参数指定文件192.168.1.91192.168.1.92192.168.1.100192.168.1.101192.168.1.102192.168.1.130192.168.1.131192.168.1.132[root@localhost ~]# pssh -h ip.txt -i date #-i表示执行完毕后显示标准输出和标准错误[1] 03:15:05 [SUCCESS] 192.168.1.92Sun Jul 27 03:43:53 EDT 2014[2] 03:15:05 [SUCCESS] 192.168.1.101Sun Aug 3 23:12:03 EDT 2014[3] 03:15:05 [SUCCESS] 192.168.1.100Sun Aug 3 23:12:03 EDT 2014[4] 03:15:05 [SUCCESS] 192.168.1.130Sun Aug 3 23:17:45 EDT 2014[5] 03:15:05 [SUCCESS] 192.168.1.131Sun Aug 3 23:17:45 EDT 2014[6] 03:15:05 [SUCCESS] 192.168.1.132Sun Aug 3 23:17:45 EDT 2014[7] 03:15:05 [SUCCESS] 192.168.1.91Thu May 22 21:42:49 EDT 2014[8] 03:15:10 [SUCCESS] 192.168.1.102Sun Aug 3 23:11:58 EDT 2014[root@localhost ~]#
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。