2011-10-13 24 views
1

我想做一个小模块,它打开一个ssh连接并允许通过ssh发送命令并返回命令的输出。因此,应该只有一个ssh连接(以便多个命令不会导致自动阻止)。我知道paramiko,但我不能使用它,因为我必须使用python3.2因为其他约束。python pty模块 - 缓冲区挂起?

我写的模块是在这里:http://kbicker.web.cern.ch/kbicker/ssh.py

原则,它的工作原理。但是,使用cat读取文本文件时,程序会挂起。我确定这是因为从pty中读取新行会挂起。我认为,存在某种缓冲区问题,但我不知道如何解决它。

我也很感激我的代码上的任何其他建议。

非常感谢您的帮助!

回答

1

解决,或者至少工作围绕它:

通过使用与SSH -M选项线程,我可以有一个主ssh连接通畅并有命令打开自己的ssh子,它通过主站连接连接,从而减轻了打开多个连接的需要。

0

尝试pexpect。我遇到了类似的问题,并解决了它。

+0

我不想使用pexpect,因为它在python3.2中也不可用。我通过改变使用ssh连接的方式解决了我的问题,请参阅我的答案(写在我写这篇文章的时候......)。 – explorerDude