【问题标题】:how to set a time out for SFTP server connection using paramiko?如何使用 paramiko 设置 SFTP 服务器连接的超时时间?
【发布时间】:2018-04-17 12:04:27
【问题描述】:

我正在努力使用 paramiko 库为 SFTP 连接设置超时选项。

如果我要移动 10GB 文件,一段时间后进程停止,没有任何错误。没有脚本问题。在我发现服务器断开连接后,只有文件上传过程没有成功完成。

有人知道如何使用 paramiko SFTP 客户端设置超时参数吗?

脚本:

s3_conn = S3Connection(profile_name=dest_profile)
bucket = s3_conn.get_bucket(tgt_bucket_nm)
proxy = paramiko.proxy.ProxyCommand('/usr/bin/nc --proxy proxy_host:8080 %s %s' % (ftp_host, ftp_port) )
transport = paramiko.Transport(proxy)
transport.connect(username=ftp_username, password=ftp_password)
ftp_conn = paramiko.SFTPClient.from_transport(transport)

如果有人需要进一步澄清我的问题,请告诉我。

提前致谢

【问题讨论】:

    标签: python proxy sftp paramiko pysftp


    【解决方案1】:

    您可以使用下面的行设置频道的超时时间

    ftp_conn.get_channel().settimeout(1000) 时间以秒为单位

    【讨论】:

      【解决方案2】:

      恐怕您必须使用带有 settimeout 的套接字:

      with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock:
          sock.settimeout(3)  # see here
              sock.connect((HOST, PORT))
              with paramiko.Transport(sock) as transport:
                  ...
      

      它会引发 socket.timeout

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-09-18
        • 2017-08-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-04
        • 2011-07-23
        • 2013-03-10
        相关资源
        最近更新 更多