底层网络设备交互:Pexpect与Paramiko的应用与对比
1. Pexpect脚本的优化与扩展
在使用Pexpect进行网络设备交互时,有一些关键要点需要注意。例如,在 login() 方法中, auto_prompt_reset=False 参数很重要。默认情况下,pxssh使用shell提示符来同步输出,但由于它大多使用bash或Csh的PS1选项,在Cisco或其他网络设备上会出错。
下面是一个完整的Pexpect脚本示例:
#!/usr/bin/python3
import getpass
from pexpect import pxssh
devices = {'iosv-1': {'prompt': 'iosv-1#', 'ip': '172.16.1.20'},
'iosv-2': {'prompt': 'iosv-2#', 'ip': '172.16.1.21'}}
commands = ['term length 0', 'show version', 'show run']
username = input('Username: ')
password = getpass.getpass('Password: ')
# Starts the loop for devices
for device in devices.keys():
outputFileName = device + '_output.txt'
device_prompt = devices[device]['prompt']
超级会员免费看
订阅专栏 解锁全文
34

被折叠的 条评论
为什么被折叠?



