最近在做服务端的一些自动化测试,用到了python下的paramiko这个包连接远程服务器并执行一些操作。
当我向服务器发送了一些命令,准备接收返回结果的时候,也就是用到了recv这个方法的时候会报错paramiko.buffered_pipe.pipeTimeout
调试后发现是因为服务端需要一定时间才能响应,不能及时返回数据,所以需要设置超时时间。
看了下源码,paramiko/channel.py下的recv方法里面并没有timeout这个参数,但官网文档里面是有timeout这个参数的
官方文档:http://docs.paramiko.org/en/stable/api/channel.html
且recv方法里面调用的read方法里也是有timeout这个参数设置的,所以在recv方法里加入这个参数即可。
官方文档:http://docs.paramiko.org/en/stable/api/buffered_pipe.html
修改后的代码为:
def rec