使用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存在很大的网络时延和丢包,也会出现类似情况。
推荐阅读
- 由浅入深理解AOP
- 【译】20个更有效地使用谷歌搜索的技巧
- mybatisplus如何在xml的连表查询中使用queryWrapper
- MybatisPlus|MybatisPlus LambdaQueryWrapper使用int默认值的坑及解决
- MybatisPlus使用queryWrapper如何实现复杂查询
- iOS中的Block
- Linux下面如何查看tomcat已经使用多少线程
- 使用composer自动加载类文件
- android|android studio中ndk的使用
- 使用协程爬取网页,计算网页数据大小