2009-11-25 129 views
2

我正在使用单个对象paramiko.SSHClient()在远程计算机上执行命令。当我使用ssh.exec_command(cmd),并且与远程主机的连接丢失时,ssh.exec_command挂断。使用paramiko检查是否存在与远程主机的连接

有没有办法在ssh.exec_command()之前检查连接的存在?

回答

2

如果您的SSH连接长时间运行,则可能需要通过Transport.set_keepalive使用Keep Alive参数。

+0

我试过了。 我把set_keepalive设置为1. 现在它以1秒为间隔发送数据包,如果连接不可用,它就会知道它,然后Transport.is_active()shud返回false。 但奇怪的是,此后,当网络不可用时,is_active()返回true。 :-( 我不知道为什么。 – hima 2009-11-27 08:39:04

0

作为替代的可能性,也许execnet会工作。它包装命令行ssh命令,所以它绝对不是paramiko方法......只是一个。

相关问题