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

2 篇文章 0 订阅
1 篇文章 0 订阅

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,是限制最少的连接方式,推荐新手使用。在这里插入图片描述
    服务器操作系统: Linux7.5 64bit
    linux安装httpd,做文件服务器
    第一步,安装
    yum install httpd
    如果提示:已加载插件:fastestmirror, langpacks
    您需要 root 权限执行此命令。在这里插入图片描述
    普通用户使用: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/
    在这里插入图片描述
    通过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

[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+共享名称进行访问
使用testparm来检查配置文件
4、启动服务:
systemctl start smb
service smb restart#重新启动Samba服务器
5、配置防火墙规则: (否则会提示无法访问)
iptables -I INPUT -p tcp --dport 139 -j ACCEPT
iptables -I INPUT -p tcp --dport 445 -j ACCEPT
iptables -I INPUT -p udp --dport 137 -j ACCEPT

5、查看防火墙状态
systemctl status firewalld.service
在这里插入图片描述
关闭linux防火墙,不然windows无法访问,提示网络可能有问题:sudo systemctl stop firewalld.service
但一旦服务器重启后,防火墙还会自动启动的。所以要使用systemctl disable firewalld.service命令来禁用防火墙,防止服务器重启自动开启。
6、如果提示Windows无法访问,没有权限访问,请关闭Selinux
在这里插入图片描述
#setenforce 0
暂时停掉SELinux
永久禁用SELinux,修改配置文件需要重启机器:
修改/etc/selinux/config 文件
sudo gedit /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled
-----------------------最终效果---------------------
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
------革命尚未成功-----------------------------最后一步--------------------------------------
python 使用paramiko模块上传本地文件到ssh
paramiko.Tranport((“目标ip,端口”))#这是上传目标的IP和端口
paramiko.SFTPClient.from_tranport()#安全文件传输凭证
sftp.put(loaclfile,remotefile)#loaclfile是要上传的文件,remotefile是上传后要保存的文件名

如果报错:Exception: Error reading SSH protocol banner
在这里插入图片描述
查询sshd port 配置
sudo cat /etc/ssh/sshd_config
端口默认这里是22
在这里插入图片描述
所以paramiko.Tranport(("目标ip“”,22))

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

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ACME(Automated Certificate Management Environment)是一个开放标准,用于自动化生成、颁发续订 SSL/TLS 证书。在 Python3 中,你可以使用 ACME 协议的 Python3 实现 Certbot(https://certbot.eff.org/)来生成和管理 SSL/TLS 证书。 Certbot 提供了一个命令行工具,它可以自动为你的域名生成 SSL/TLS 证书,并将其配置到你的 Web 服务器中。你可以通过以下步骤来使用 Certbot: 1. 安装 Certbot。 Certbot 已经在很多 Linux 发行版的软件仓库中了,你可以使用包管理器来安装它。例如,在 Ubuntu 中,你可以使用以下命令来安装 Certbot: ``` $ sudo apt-get update $ sudo apt-get install certbot ``` 2. 运行 Certbot 命令。 在运行 Certbot 命令之前,你需要确保你的 Web 服务器已经启动,并且你已经把域名解析到了正确的 IP 地址。接着,你可以使用以下命令来生成 SSL/TLS 证书: ``` $ sudo certbot certonly --standalone -d example.com -d www.example.com ``` 这个命令会在本地启动一个临时的 Web 服务器,并将一个临时的 HTTP 资源添加到你的 Web 服务器配置中,以便 Certbot 可以验证你的域名所有权。如果验证成功,Certbot 将会生成一个 SSL/TLS 证书,并将其保存在本地磁盘上。 3. 配置 Web 服务器。 你需要将生成的 SSL/TLS 证书配置到你的 Web 服务器中。具体的配置方式取决于你使用的 Web 服务器。例如,在 Nginx 中,你可以使用以下配置来启用 SSL/TLS: ``` server { listen 443 ssl; ssl_certificate /path/to/fullchain.pem; ssl_certificate_key /path/to/privkey.pem; ... } ``` 在这个配置中,`/path/to/fullchain.pem` 是你生成的 SSL/TLS 证书的完整证书链,`/path/to/privkey.pem` 是你生成的 SSL/TLS 证书的私钥文件。 4. 自动续订证书。 SSL/TLS 证书的有效期通常是 90 天。为了确保你的网站始终使用有效的证书,你需要定期续订证书。你可以使用 Certbot 命令行工具来自动续订证书。例如,你可以使用以下命令来在证书过期前 30 天自动续订证书: ``` $ sudo certbot renew --rsa-key-size 4096 --pre-hook "service nginx stop" --post-hook "service nginx start" ``` 在这个命令中,`--rsa-key-size` 参数指定了新生成证书的密钥长度,`--pre-hook` 和 `--post-hook` 参数指定了在续订证书前后需要执行的命令。在这个例子中,我们停止了 Nginx 服务,以便 Certbot 可以占用 80 端口来验证证书所有权,并在续订证书后重新启动了 Nginx 服务。 以上就是使用 Certbot 来生成和管理 SSL/TLS 证书的基本步骤。你可以参考 Certbot 的官方文档(https://certbot.eff.org/docs/using.html)来了解更多详细的使用方法和配置选项。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值