一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

python中pexpect模块封装ssh示例

时间:2014-10-20 编辑:简简单单 来源:一聚教程网

很多时候需要批量在一批主机上执行某个操作时,利用python 可以很好的完成这个工作。如果在现网主机上没有部署自动化工具时,同时你又不想使用paramiko这样相对重量级的模块,你可以通过pexpect模块通过一个简单的spawn执行并交互完成一些简单的命令操作。

pexpect模块的安装

 代码如下 复制代码
# wget https://pypi.python.org/packages/source/p/pexpect/pexpect-3.3.tar.gz
# tar zxvf pexpect-3.3.tar.gz
# cd pexpect-3.3
# python setup.py install

示例:

 代码如下 复制代码

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import pexpect
def ssh_cmd(ip, passwd, cmd):
    ret = -1
    ssh = pexpect.spawn('ssh root@%s "%s"' % (ip, cmd))
    try:
        i = ssh.expect(['password:', 'continue connecting (yes/no)?'], timeout=5)
        if i == 0 :
            ssh.sendline(passwd)
        elif i == 1:
            ssh.sendline('yes\n')
            ssh.expect('password: ')
            ssh.sendline(passwd)
        ssh.sendline(cmd)
        r = ssh.read()
        print r
        ret = 0
    except pexpect.EOF:
        print "EOF"
        ssh.close()
        ret = -1
    except pexpect.TIMEOUT:
        print "TIMEOUT"
        ssh.close()
        ret = -2
    return ret
ssh_cmd("192.168.0.102","361way","uptime")

热门栏目