Ssh 使用pexpect向IOS发送多行配置
我正在尝试使用pexpect将长ACL转储到Cisco IOS路由器,ACL内容是一个字符串,其中包含大约100行ACL条目,我使用了以下代码:Ssh 使用pexpect向IOS发送多行配置,ssh,pexpect,cisco-ios,Ssh,Pexpect,Cisco Ios,我正在尝试使用pexpect将长ACL转储到Cisco IOS路由器,ACL内容是一个字符串,其中包含大约100行ACL条目,我使用了以下代码: for aclstr_line in aclstr.split('\n\r'): ssh_session.sendline('%s' % aclstr_line) ssh_session.expect('[(.+)#]') ssh_session.interact() ssh_session.sendline('interface vl
for aclstr_line in aclstr.split('\n\r'):
ssh_session.sendline('%s' % aclstr_line)
ssh_session.expect('[(.+)#]')
ssh_session.interact()
ssh_session.sendline('interface vlan100')
ssh_session.expect('[(.+)#]')
ssh_session.sendline('ip access-group Inbound_ACL in')
ssh_session.expect('[(.+)#]')
上面的前5行代码在ssh_session.interact()之前都能正常工作,但如果我去掉“ssh_session.interact()”,代码就会中断,日志文件显示代码在继续执行rest发送线命令之前没有完成所有ACL项的配置,所有发送线命令似乎都相互混合
原因可能是什么?谢谢,下一个命令准备就绪时,是否有提示或其他提示<代码>[(.+)#]非常广泛。或者您是想转义其中一些字符,例如,
\[(.+)\]
?谢谢,我怀疑问题与提示相关,我尝试了不同的提示匹配,我要查找的是“\”,这是处于特权模式的Cisco IOS提示符。另一种可能性是:正在拆分的行终止符可能错误-请尝试使用splitlines()
方法。