Python,使用pexpect连接到交换机

时间:2017-08-10 10:06:50

标签: python ssh pexpect juniper

我正在尝试使用pexpect库连接交换机Juniper以获取一些接口信息,这是我的代码:

if Not begin1 is nothing then

结果如下:

import pexpect

child = pexpect.spawn('ssh root@10.171.23.246')
child.expect('login as: ')
child.sendline('root')
child.expect('password:')
child.sendline(mypassword)
child.expect('% ')
child.sendline('cli')
child.expect('> ')
child.sendline('show interface')

好像,密码不会发送到交换机。 我是一个新的python用户抱歉,如果不清楚。如何正确连接到交换机?

2 个答案:

答案 0 :(得分:0)

尝试fabric - 它比pexpect更高级,并且更容易使用。

  

Fabric是一个Python(2.5-2.7)库和命令行工具   简化SSH在应用程序部署或系统中的使用   管理任务。

基于代码的简单示例是:

from fabric.api import env, run
env.host_string = '10.171.23.246'
env.user = 'root'
env.password = 'put_your_password_here'

run('cli')

答案 1 :(得分:0)

经过几次测试后我找到了答案,问题是第一个期望“child.expect('login as:')”谁没想到。

然后我假设结束等待我的命令(show interface)的结果,并打印child.before以显示我上一个发送行的输出()

import pexpect

child = pexpect.spawn('ssh root@10.171.23.246')
child.expect('login as: ')
child.sendline('root')
child.expect('password:')
child.sendline(mypassword)
child.expect('% ')
child.sendline('cli')
child.expect('> ')
child.sendline('show interface')
child.expect(' > ')
print child.before

有效!