Netmiko操作Alcatel SROS设备send_command失败send_command_timing成功原因咨询
核心原因说明
两类Netmiko方法的本质差异
send_command属于模式匹配驱动的交互方法:执行后会持续读取设备返回的内容,直到匹配到默认的设备提示符,或是用户指定的expect_string参数值才会终止读取,执行后续操作。如果指定的expect_string和SROS设备实际返回的丢弃配置确认提示内容存在差异(包括未匹配到的特殊字符、空格、换行、控制符等),该方法会一直等待直到超时,最终执行失败,无法触发后续的'y'确认输入。send_command_timing属于时间延迟驱动的交互方法:执行过程中不会做任何模式匹配逻辑,仅按照预设的延迟时长等待设备回显,等待结束后就直接执行后续输入操作。SROS设备的丢弃配置确认提示会在命令下发后固定短时间内返回,只要延迟时长覆盖了提示返回的时间窗口,即可顺利发送'y'完成确认,因此可以执行成功。
Alcatel SROS设备适配建议:如果需要使用
send_command实现该逻辑,可以先手动执行丢弃候选配置命令,复制完整的确认提示原文(包含所有格式字符)写入expect_string参数,同时可以开启Netmiko debug日志核对实际回显内容,确保匹配规则准确。
内容的提问来源于stack exchange,提问作者Martin_G
相关产品推荐
相关产品推荐

