Pexpect脚本执行缓慢:每步触发30秒超时问题排查
pxssh登录延迟问题排查
我运行了以下pxssh脚本:
pxssh.PROMPT = "user@firewall>" conn = pxssh.pxssh(options={ "StrictHostKeyChecking": "no", "UserKnownHostsFile": "/dev/null"}) conn.login(ip, user, pw, auto_prompt_reset=False, login_timeout=10) conn.prompt(timeout=1) conn.sendline("set cli pager off\r") conn.prompt(timeout=1) print(int(time.time())) conn.sendline("debug dataplane pow performance all\r") conn.prompt(timeout=1) output = conn.before conn.logout()
脚本可正常执行并返回正确数据,但未添加prompt超时设置前每步耗时超30秒;添加超时设置后,登录仍需33秒,后续prompt步骤耗时约1秒,所有操作均成功但存在明显延迟。
此前使用Pexpect未遇到此类问题,预期发送命令后会自动触发执行并立即返回响应,且同一主机的交互式会话无延迟。请问我遗漏了什么配置?或这属于pxssh的预期行为?
补充:清理后的脚本日志输出如下,我无法理解其中的$符号,也不清楚命令回显时单词间带提示符的原因:
^M(logan@10.0.10.1) Password: xxxxxxxxxxxxxxxxxxx ^M$ Last login: Mon Feb 17 11:24:19 2025 from 10.0.10.10^M^M$ ^M$ ^M$ ^M$ Number of failed attempts since last successful login: 0^M$ ^M$ ^M$ ^M$ logan@Paloalto(passive)> $ ^M$ logan@Paloalto(passive)> $ ^M$ logan@Paloalto(passive)> $ ^M$ logan@Paloalto(passive)> $ ^M$ logan@Paloalto(passive)> set cli pager off^M$ set ^M^[[Klogan@Paloalto(passive)> set cli ^M^[[Klogan@Paloalto(passive)> set cli pager ^M^[[Klogan@Paloalto(passive)> set cli pager off^M$ logan@Paloalto(passive)> ^M$ logan@Paloalto(passive)> debug dataplane pow performance all^M$ debug ^M^[[Klogan@Paloalto(passive)> debug dataplane ^M^[[Klogan@Paloalto(passive)> debug dataplane pow ^M^[[Klogan@Paloalto(passive)> debug dataplane pow performance ^M^[[Klogan@Paloalto(passive)> debug dataplane pow performance all^M$ ^M$ group max-us avg-us count total-us ac-max-us ac-avg-us ac-count ac-total-us^M$ flow_lookup 0 0.0 0 0 0 0.0 0 0^M$ flow_fastpath 0 0.0 0 0 1943467 45.8 11061157675 506606814217^M$ flow_slowpath 0 0.0 0 0 1951485 121.8 519672471 63332379045^M$
补充说明:我注意到部分输出提示符存在"(active)>"与"(passive)>"不匹配的情况,但无论是否匹配,延迟问题现象均未改变。我已更新脚本修正该问题,后续会实现识别活跃设备的方法,但这无法解决当前prompt相关的核心延迟问题。
内容的提问来源于stack exchange,提问作者Logan
相关产品推荐
相关产品推荐

