【问题标题】:Timeout in paramiko (python)paramiko(python)中的超时
【发布时间】:2012-04-03 05:53:31
【问题描述】:

我正在寻找一种为此设置超时的方法:

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()

【问题讨论】:

    标签: python ssh timeout scp paramiko


    【解决方案1】:

    可以使用connect 函数的timeout 参数(表示超时的,如here 所述)设置连接超时。

    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()
    

    【讨论】:

    • @kukosk 如果你提到要给出超时的单位会有所帮助,我猜它的秒数。
    • 什么是默认超时,我想我也没有在docs 中找到它,尽管他们确实提到了timeout (float) – an optional timeout (in seconds) for the TCP connect
    • 这里有更多背景信息,如果未指定超时,客户端将进入阻塞模式:docs.python.org/3/library/socket.html#socket-timeouts
    • github.com/jbouse-debian/paramiko/blob/master/paramiko/… 处弹出大量默认超时定义,均以秒为单位
    • 请注意,timeout 参数设置 TCP 超时。还有banner_timeoutauth_timeout,您可能也想调整它们。
    猜你喜欢
    • 2014-12-28
    • 1970-01-01
    • 2016-05-25
    • 2014-08-22
    • 2012-10-30
    • 2014-10-05
    • 1970-01-01
    • 2014-10-25
    • 2016-08-01
    相关资源
    最近更新 更多