如何使用paramiko为SFTP服务器连接设置超时?
how to set a time out for SFTP server connection using paramiko?
我正在努力使用 paramiko 库为 SFTP 连接设置超时选项。
如果我正在移动 10GB 的文件,一段时间后进程停止,没有任何 error.There 没有脚本问题。在我发现服务器断开连接后,只有文件上传过程没有成功完成。
有谁知道如何使用 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)
如果有人需要进一步说明我的问题,请告诉我。
提前致谢
您可以使用以下行设置频道超时
ftp_conn.get_channel().settimeout(1000)
时间以秒为单位
恐怕你必须使用带 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
我正在努力使用 paramiko 库为 SFTP 连接设置超时选项。
如果我正在移动 10GB 的文件,一段时间后进程停止,没有任何 error.There 没有脚本问题。在我发现服务器断开连接后,只有文件上传过程没有成功完成。
有谁知道如何使用 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)
如果有人需要进一步说明我的问题,请告诉我。
提前致谢
您可以使用以下行设置频道超时
ftp_conn.get_channel().settimeout(1000)
时间以秒为单位
恐怕你必须使用带 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