栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

python创建sftp连接关闭不了问题解决

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python创建sftp连接关闭不了问题解决

本人遇到坑的代码如下:
from flask import Flask, request
app = Flask(__name__)
##创建服务的sftp的连接
def get_scanner_sftp_connect():
    host = config.remote_host  # 主机
    port = config.remote_port  # 端口
    username = config.remote_username  # 用户名
    password = config.remote_password  # 密码
    sf = paramiko.Transport(host, port)
    sf.connect(username=username, password=password)
    
    scanner_sftp = paramiko.SFTPClient.from_transport(sf)

    return scanner_sftp
# scanner_sftp = get_scanner_sftp_connect()  ####创建扫描仪服务链接sftp服务器
@app.route("/test_sftp", methods=["POST"])
def test_sftp():
    
    print("创建连接")
    scanner_sftp = get_scanner_sftp_connect
    scanner_sftp.close()

    return  "d调用结束"
if __name__ == "__main__":
    app.run(host='0.0.0.0', port=40000, debug=True)

以上代码运行一段时间之后,尤其是调用接口的并发量很大的时候,就会报出以下问题:

Error reading SSH protocol banner[Errno 104] Connection reset by peer

Authentication failed   Authentication timeout

解决之后的代码如下:

from flask import Flask, request
app = Flask(__name__)
##创建服务的sftp的连接
def get_scanner_sftp_connect():
    host = config.scanner_remote_host  # 主机
    port = config.scanner_remote_port  # 端口
    username = config.scanner_remote_username  # 用户名
    password = config.scanner_remote_password  # 密码
    sf = paramiko.Transport(host, port)
    sf.connect(username=username, password=password)

    sf.banner_timeout = 60##如果不添加这个运行一段时间之后会报Error reading SSH protocol banner[Errno 104] Connection reset by peer,并且让运维组调整服务器ssh的最大连接数即可解决

    scanner_sftp = paramiko.SFTPClient.from_transport(sf)

    return scanner_sftp,sf
# scanner_sftp = get_scanner_sftp_connect()  ####创建扫描仪服务链接sftp服务器
@app.route("/test_sftp", methods=["POST"])
def test_sftp():
    
    print("创建连接")
    scanner_sftp,sf= get_scanner_sftp_connect
    scanner_sftp.close()
    sf.close()##增加这个关闭才算是完全关闭
    return  "d调用结束"
if __name__ == "__main__":
    app.run(host='0.0.0.0', port=40000, debug=True)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/914037.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号