使用pexpect报错could not shell prompt(received: ‘‘, excepted: ‘\\[PEXPECT\\][\\$\\#]‘)

本文讲述了在运维中遇到的一个脚本登录问题,通过远程调试发现是由于多IP环境下网络不通导致的登录超时。问题出现在使用pexpect模拟登录时,错误提示与预期不符,经过详细排查,最终定位到是由于特定IP无法通信造成的。此案例提醒我们在处理类似问题时要注意网络环境和多IP配置的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

某天,遇到一个运维发来图片,说使用我们的工具一直报错密码不对。。。

脚本使用pexpect模拟终端进行交互密码登录,报错:

could not shell prompy(received: '', excepted: '\\[PEXPECT\\][\\$\\#]')

发问题截图一看,傻眼,这个错之前从来没有遇到过。。。

说了好几种可能的原因都不对,在自己的环境也复现不出来,网上也搜不出来合适的。。。

各种求助同事,各种百度,无果。。。

后来,幸好他的环境可以远程共享,一步步pdb调试,打印出登录失败的命令,才发现

(cmd = ssh ip2 ...)   这个ip2怎么和他给我说的ip1 不一样 。ssh ip1, 登录成功,ssh ip2,hang住。。。

问题原因找到了:

机器多ip环境,ip1 和 ip2之间不通,ip2对外不通,使用ip2登录,一直登录超时。

单ip环境,机器之间存在很大的网络时延和丢包,也会出现类似情况。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值