使用pxssh(Python的ssh模块)时读取非阻塞错误
我正在尝试通过一个Python脚本,使用pxssh模块来远程连接一台机器。
以下是我用来实现这个功能的代码:
s = pxssh.pxssh()
s.login (hostip,'root',auto_prompt_reset=False)
但是我遇到了一个超时错误。
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.6/dist-packages/pxssh.py", line 243, in login
if not self.synch_original_prompt():
File "/usr/local/lib/python2.6/dist-packages/pxssh.py", line 134, in synch_original_prompt
self.read_nonblocking(size=10000,timeout=1) # GAS: Clear out the cache before getting the prompt
File "/usr/local/lib/python2.6/dist-packages/pexpect.py", line 824, in read_nonblocking
raise TIMEOUT ('Timeout exceeded in read_nonblocking().')
pexpect.TIME
OUT: Timeout exceeded in read_nonblocking().
2 个回答
2
我也遇到过同样的问题。这个帖子( http://bytes.com/topic/python/answers/760027-read_nonblocking-error-pxssh )提供了一个解决办法。
“我在第一次调用read_nonblocking()之前,在synch_original_prompt()里加了一行self.sendline(),然后再加上time.sleep(0.5)。”
这样做就解决了我的问题。
3
我换了一个Python库,改用了paramiko,因为这个库更稳定,不会出现上面提到的错误。