python中pass_python中pexpect模块封装ssh示例

更新时间:2019-07-22    来源:python    手机版     字体:

【www.bbyears.com--python】

很多时候需要批量在一批主机上执行某个操作时,利用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")

本文来源:http://www.bbyears.com/jiaocheng/59285.html

热门标签

更多>>

本类排行