Тайм-аут в парамико (питон)

Я ищу способ установить тайм-аут для этого:

transport = paramiko.Transport((host, port))
transport.connect(username = username, password = password)
sftp = paramiko.SFTPClient.from_transport(transport)
sftp.get(remotepath, localpath)
sftp.close()
transport.close()

person Kukosk    schedule 18.03.2012    source источник


Ответы (1)


Время ожидания соединения можно установить с помощью параметра timeout (который указывает количество секунд для времени ожидания, как описано здесь) функции connect.

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(host, username=username, password=password, timeout=10)
sftp = ssh.open_sftp()
sftp.get(remotepath, localpath)
sftp.close()
person Kukosk    schedule 18.03.2012
comment
@kukosk Было бы полезно, если бы вы упомянули единицу измерения времени ожидания, я думаю, это секунды. - person manoj prashant k; 15.12.2017
comment
Что такое тайм-аут по умолчанию, я не думаю, что нашел его упомянутым в документы, хотя в них упоминается timeout (float) – an optional timeout (in seconds) for the TCP connect - person jxramos; 19.07.2018
comment
Вот еще предыстория, если таймаут не указан, клиент переходит в режим блокировки: docs.python.org/3/library/socket.html#socket-timeouts - person jxramos; 19.07.2018
comment
Многие определения тайм-аута по умолчанию появляются на странице github.com/jbouse- debian/paramiko/blob/master/paramiko/, все указано в секундах - person jxramos; 19.07.2018
comment
Обратите внимание, что параметр timeout задает тайм-аут TCP. Есть также banner_timeout и auth_timeout, которые вы также можете настроить. - person trozen; 08.04.2019