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

某天,遇到一个运维发来图片,说使用我们的工具一直报错密码不对。。。
脚本使用pexpect模拟终端进行交互密码登录,报错:
could not shell prompy(received: '', excepted: '\\[PEXPECT\\][\\$\\#]')
发问题截图一看,傻眼,这个错之前从来没有遇到过。。。
说了好几种可能的原因都不对,在自己的环境也复现不出来,网上也搜不出来合适的。。。
各种求助同事,各种百度,无果。。。


后来,幸好他的环境可以远程共享,一步步pdb调试,打印出登录失败的命令,才发现
(cmd = ssh ip2 ...)这个ip2怎么和他给我说的ip1 不一样 。ssh ip1, 登录成功,ssh ip2,hang住。。。
问题原因找到了:
多网络环境,ip1 和 ip2之间不能ping通,所以一直登录超时。
【使用pexpect报错could|使用pexpect报错could not shell prompt(received: '', excepted: '\\[PEXPECT\\][\\$\\#]')】ip1和ip2存在很大的网络时延和丢包,也会出现类似情况。

    推荐阅读