python windows上传本地文件到linux服务器【完整版】

时间:2024-05-22 12:10:16

python 版本: python3.7
操作系统: Windows7 64bit
设备信息:

  • 夜神模拟器版本信息: V_6.2.3.7
    在研究“基于Airtest搭建自动化测试框架,并实现几个主要功能的自动化测试”时,关于推送测试报告这块,我是用IIS将报告的目录部署为一个web站点,就可以随时通过url链接查看每一次运行的报告内容,后面接到一个新任务需要将测试报告放到linux服务器并访问。
    经研究linux下只能安装apache的web服务器,其他你就别想了,iis只能装在微软机器上。在此和大家交流学习下我实现的完整过程:
    Linux 系统的映像文件(.iso 文件):CentOS-7-x86_64-DVD-1804.iso
    注:
    桥接模式:相当于虚拟机的网卡和宿主机的物理网卡均连接到虚拟机软件所提供的 VMnet0 虚拟交换机上,因此虚拟机和宿主机是平等的,相当于一个网络中的两台计算机。这种设置既可以保证虚拟机和宿主机通信,也可以和局域网内的其他主机通信,还可以连接 Internet,是限制最少的连接方式,推荐新手使用。python windows上传本地文件到linux服务器【完整版】
    服务器操作系统: Linux7.5 64bit
    linux安装httpd,做文件服务器
    第一步,安装
    yum install httpd
    如果提示:已加载插件:fastestmirror, langpacks
    您需要 root 权限执行此命令。python windows上传本地文件到linux服务器【完整版】
    普通用户使用:yum命令时,系统提示权限不足,于是想到使用sudo命令借用root用户的权限:sudo yum install httpd

    httpd -version
    第二步,开启服务
    service httpd start
    第三步,找到默认的主页位置
    cd /var/www/html/
    第四步,建立文件夹,文件
    mkdir test_reports
    vi 201912261577352790.html
    第五步,在浏览器访问文件服务器,默认端口是80
    http://192.168.10.11/test_reports/
    python windows上传本地文件到linux服务器【完整版】
    通过Samba共享Linux文件夹
    1、安装samba:
    sudo yum install samba
    报错:samba-libs-4.9.1-10.el7_7.x86_64: [Errno 256] No more mirrors to try.
    有上面提示说明yum源有问题。按顺序试试以下命令
    清除yum缓存:rm -rf /var/cache/yum/

    清除所有yum:yum clean all
    显示仓库列表:yum repolist*
    2、修改该目录权限
    chmod 777 /var/www/html/test_reports(文件夹(目录)的权限就被修改为777可读可写可执行)
    3、 设置目录共享,允许网络用户访问:
    sudo gedit /etc/samba/smb.conf
    使用testparm来检查配置文件
    service smb restart
    [global]
    security = user #这个是验证方式,user是密码登录,不支持share和server,设置user后加入下面一句话
    map to guest = Bad User #
    [test_reports]
    path=/var/www/html/test_reports#共享目录路径
    public = yes#设置共享是否允许guest账户访问
    writable = yes#设置共享是否具有可写权限
    browseable=yes#设置共享是否可浏览,如果no就表示隐藏,需要通过IP+共享名称进行访问
    4、查看防火墙状态
    systemctl status firewalld.service
    关闭linux防火墙,不然windows无法访问:sudo systemctl stop firewalld.service
    但一旦服务器重启后,防火墙还会自动启动的。所以要使用systemctl disable firewalld.service命令来禁用防火墙,防止服务器重启自动开启。
    5、如果提示Windows无法访问,没有权限访问,请关闭Selinux
    python windows上传本地文件到linux服务器【完整版】
    #setenforce 0
    暂时停掉SELinux
    永久禁用SELinux,修改配置文件需要重启机器:
    修改/etc/selinux/config 文件
    sudo gedit /etc/selinux/config
    将SELINUX=enforcing改为SELINUX=disabled
    -----------------------最终效果---------------------
    python windows上传本地文件到linux服务器【完整版】
    python windows上传本地文件到linux服务器【完整版】
    python windows上传本地文件到linux服务器【完整版】
    ------革命尚未成功-----------------------------最后一步--------------------------------------
    python 使用paramiko模块上传本地文件到ssh
    paramiko.Tranport((“目标ip,端口”))#这是上传目标的IP和端口
    paramiko.SFTPClient.from_tranport()#安全文件传输凭证
    sftp.put(loaclfile,remotefile)#loaclfile是要上传的文件,remotefile是上传后要保存的文件名

如果报错:Exception: Error reading SSH protocol banner
python windows上传本地文件到linux服务器【完整版】
查询sshd port 配置
sudo cat /etc/ssh/sshd_config
端口默认这里是22
python windows上传本地文件到linux服务器【完整版】
所以paramiko.Tranport(("目标ip“”,22))

这样就实现了windows上传本地文件到linux服务器了,大家还有什么疑问可以底下评论,或者还有什么更好更简便的方法也可以一起交流学习!