python与pexpect实现ssh操作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python与pexpect实现ssh操作相关的知识,希望对你有一定的参考价值。

下载并安装pexpect与ptyprocess模块并结合python2.7实现如下操作

tar -zxvf pexpect-4.0.1.tar.gz 

cd pexpect-4.0.1

python setup.py install

tar -zxvf ptyprocess-0.5.tar.gz 

cd /ptyprocess-0.5

python setup.py install


Py脚本

#!/usr/bin/env python 

# -*- coding: utf-8 -*- 

import pexpect 

#from getpass import getpass

#passwd = getpass()

def ssh_cmd(user,ip, cmd,passwd): 

        ssh = pexpect.spawn(‘ssh %[email protected]%s "%s"‘ % (user,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‘) 

                        ssh.expect(‘password: ‘) 

                        ssh.sendline(passwd) 

        except pexpect.EOF: 

                print "EOF" 

        except pexpect.TIMEOUT:

                print "TIMEOUT"

        else:

                r = ssh.read() 

                print r

        ssh.close()


if __name__ == ‘__main__‘:

        file=open("/mess/filelist",‘r‘)

        a = file.read()

        file.close()

        for host in a.split("\n"):

                if host:

                        user,ip,cmd,passwd = host.split("::")

                        print "-- %s run:%s --" % (ip, cmd)

                        ssh_cmd(user,ip,cmd,passwd)

-------------------------------------------------------------------------------------------

/mess/filelist

root::192.168.100.100::ls -l::password

root::192.168.100.100::ps -ef|grep ssh|awk ‘{print $8}‘::password


以上是关于python与pexpect实现ssh操作的主要内容,如果未能解决你的问题,请参考以下文章

python linux交互模块(paramikofabric与pexpect)

pexpect模块

python 终端模拟模块 pexpect

Python的Pexpect的简单使用

python-pexpect_02ssh

python 使用pexpect实现自动交互示例