python pexpect模块封装ssh

很多时候需要批量在一批主机上执行某个操作时,利用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 pexpectdef 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 retssh_cmd("192.168.0.102","361way","uptime")
python pexpect模块封装ssh

相关文章:

你感兴趣的文章:

标签云: