【发布时间】:2018-01-17 17:46:37
【问题描述】:
我编写了一个简单的 python 脚本来连接(通过 ssh)到 Palo Alto 防火墙,以通过 cli 收集一些数据。但是,一旦它连接到盒子,它就不会执行命令,它只会挂起并出现以下错误:
Traceback(最近一次调用最后一次):
文件“myscript.py”,第 97 行,在
connectExpect()
文件“myscript.py”,第 58 行,在 connectExpect 中
child.expect('username@device-name> ')
文件“/usr/lib/python2.7/site-packages/pexpect.py”,第 1311 行,在预期中
return self.expect_list(compiled_pattern_list, timeout, searchwindowsize)
文件“/usr/lib/python2.7/site-packages/pexpect.py”,第 1325 行,在 expect_list 中
return self.expect_loop(searcher_re(pattern_list), timeout, searchwindowsize)
文件“/usr/lib/python2.7/site-packages/pexpect.py”,第 1409 行,在 expect_loop 中
raise TIMEOUT (str(e) + '\n' + str(self))
pexpect.TIMEOUT: read_nonblocking() 超时。
版本:2.3($Revision:399 $)
命令:/usr/bin/ssh
args: ['/usr/bin/ssh', 'user@{ip address}']
搜索者:searcher_re:
0: re.compile("username@device-name> ")
缓冲区(最后 100 个字符):2018 年 2:14 来自 {server name}
欢迎用户名。
用户名@设备名称>
之前(最后 100 个字符):2018 年 2:14 来自 {server name}
欢迎用户名。
用户名@设备名称>
之后:
匹配:无
match_index:无
退出状态:无
flag_eof: 假
pid:24490
child_fd: 3
关闭:错误
超时:30
分隔符:
日志文件:无
日志文件读取:无
logfile_send:无
最大读取:2000
忽略大小写:错误
搜索窗口大小:无
延迟发送前:0.05
延迟关闭:0.1
延迟后终止:0.1
这是脚本:
child = pexpect.spawn('ssh username@ipaddress')
child.expect('Password: ')
child.sendline('userpassword')
child.expect('username@device-name> ') # User is now logged in
以下命令未执行,脚本挂起
上面提供的错误
child.sendline('command1')
child.expect('username@device-name> ')
child.sendline('command2')
此时用户仍处于登录状态。
【问题讨论】: