Проверьте, живо ли соединение paramiko ssh
есть ли способ проверить, если paramiko
SSH соединение все еще жив?
In [1]: import paramiko
In [2]: ssh = paramiko.SSHClient()
In [3]: ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
In [4]: ssh.connect(hostname)
Я хочу имитировать что-то вроде этого (которого в настоящее время не существует)
In [5]: ssh.isalive()
True
3 ответов
ssh.get_transport().is_active()
должен это сделать .... предполагая, что я прочитал docs право
Я заметил, что is_active () возвращает ложные срабатывания.
Я бы рекомендовал использовать этот фрагмент:
# use the code below if is_active() returns True
try:
transport = client.get_transport()
transport.send_ignore()
except EOFError, e:
# connection is closed
для меня приведенный выше ответ не работает, поэтому я сделал это, отправив exec_command () С время ожидания :
self.ssh.exec_command('ls', timeout=5)
для exemple полный метод будет выглядеть так:
def check_connection(self):
"""
This will check if the connection is still availlable.
Return (bool) : True if it's still alive, False otherwise.
"""
try:
self.ssh.exec_command('ls', timeout=5)
return True
except Exception as e:
print "Connection lost : %s" %e
return False
и я называю это каждые 5 секунд.