一.简介

用python实现文件自动上传,主要源于在测试项目中想实现自动化上传文件功能,无须手工输入。比如从windows到Linux,或从Linux到windows,或从Linux到Linux。

主要实现方法是封装命令,但其中也收获了很多技巧,故记录下来,方便后续查阅。

二.内容

1.windows<->Linux

从windows 到Linux之间的传输比较简单,主要是用python实现对pscp 命令的封装。

可参考http://www.jb51.net/article/113165.htm

2.Linux<->Linux

a. linux服务器之间传输文件的几种方式

共四种scp、rcp、wget、rsync(http://blog.csdn.net/zhiyuan411/article/details/8166409)

rsync功能强大,操作类似scp,支持排除目录,支持限速参数;还支持本地复制。故最终选择用python对rsync命令进行封装。

b.rsync 免密码登录

rsync是远程文件同步协议,在linux系统下,操作服务器之间的文件同步,是非常方便高效的。

但是,简单的rsync操作,往往需要和用户交互,需要用户输入密码,这个对于结合应用系统使用,比如Java调用linux指令实现同步的话,就不是很方便。

免密码方法一:

免密码操作的一种方式是rsync+ssh,利用ssh的安全校验机制来传输文件,然后将ssh设置为免密码登录。

要实现rsync的无密码传输,基本思路是用一对公私钥来代替帐户密码,实现ssh连接时的认证

配置:http://blog.csdn.net/fuguoq1984/article/details/32331941

免密码方法二:

在python中使用pexpect自动输入密码,https://www.cnblogs.com/MikeZhang/p/rsyncExample_20160818.html

用python实现文件自动上传的更多相关文章

  1. Python读写文件

    Python读写文件1.open使用open打开文件后一定要记得调用文件对象的close()方法.比如可以用try/finally语句来确保最后能关闭文件. file_object = open('t ...

  2. python计算文件的md5值

    前言 最近要开发一个基于python的合并文件夹/目录的程序,本来的想法是基于修改时间的比较,即判断文件有没有改变,比较两个文件的修改时间即可.这个想法在windows的pc端下测试没有问题. 但是当 ...

  3. python操作文件案例二则

    前言 python 对于文件及文件夹的操作. 涉及到 遍历文件夹下所有文件 ,文件的读写和操作 等等. 代码一 作用:查找文件夹下(包括子文件夹)下所有文件的名字,找出 名字中含有中文或者空格的文件 ...

  4. Python :open文件操作,配合read()使用!

    python:open/文件操作 open/文件操作f=open('/tmp/hello','w') #open(路径+文件名,读写模式) 如何打开文件 handle=open(file_name,a ...

  5. python学习 文件操作

    一.python打开文件 #=====================python 文件打开方式 open()===================== # open(fileName,type) t ...

  6. Python之文件读写

    本节内容: I/O操作概述 文件读写实现原理与操作步骤 文件打开模式 Python文件操作步骤示例 Python文件读取相关方法 文件读写与字符编码 一.I/O操作概述 I/O在计算机中是指Input ...

  7. python 遍历文件夹 文件

    python 遍历文件夹 文件   import os import os.path rootdir = "d:\data" # 指明被遍历的文件夹 for parent,dirn ...

  8. python检测文件的MD5值

    python检测文件的MD5值MD5(单向散列算法)的全称是Message-Digest Algorithm 5(信息-摘要算法),经MD2.MD3和MD4发展而来.MD5算法的使用不需要支付任何版权 ...

  9. Python编码/文件读取/多线程

    Python编码/文件读取/多线程 个人笔记~~记录才有成长   编码/文件读取/多线程 编码 常用的一般是gbk.utf-8,而在python中字符串一般是用Unicode来操作,这样才能按照单个字 ...

随机推荐

  1. Linux ansible 常用模块二

    fetch 将远程机器上的文件拉取到本地,以ip或者主机名生成目录,并保留原来的目录结构 dest  #目标地址src   #源地址ansible web -m fetch -a "dest ...

  2. 使用unity开发游戏时如觉得游戏声音太吵,点Mute Audio

    mute静音

  3. The declared package does not match the expected package Java

    今天使用vscode 编写java代码做测试时候,发现这个问题,大概总结一下. 目录结构 bao -> Point.java test.java package bao; public clas ...

  4. Eclipse+Servlet+jsp+MySql

    一.JSP和Servlet的简单介绍: Java开发Web应用程序时用到的技术主要有两种,即Servlet和JSP,Servlet是在服务器端执行的Java程序,一个被称为Servlet容器的程序(其 ...

  5. java 将指定文件夹递归的进行zip打包压缩

    package tmp.MavenTest; import java.io.BufferedInputStream; import java.io.File; import java.io.FileI ...

  6. vue中html页面写入$t(‘’)怎么显示

    1.在 main.js 中引入 vue-i18n (前提是要先引入 vue) 1 2 import VueI18n from'vue-i18n' Vue.use(VueI18n) 2.准备本地的翻译信 ...

  7. 从本地上传项目到 github 以及从github 下载项目到本地环境

    前置条件:成功安装github,安装成功后,要配置密钥,不然上传不成功,要报错 具体上传步骤: git init   //初始化 git add  文件名  //更新文件 git commit -m ...

  8. Autel MaxiTPMS TS601 Wireless TPMS Sensor Reset Relearn Activate Programming Tool

    Why Choose Autel TPMS TS601? MaxiTPMS TS601 is a TPMS tool with highest performance in the world. It ...

  9. RNAseq测序reads定位

    RNAseq测序reads定位 发表评论 3,210 A+ 所属分类:Transcriptomics   收  藏 获得RNA-seq的原始数据后,首先需要将所有测序读段通过序列映射(mapping) ...

  10. 在linux上添加硬盘

    首先呢我们需要添加一个硬盘,如下所示: 接着我们需要新建一个硬盘 代码如下: mkdir /bak fdisk -l 接着我们继续第二步,分区 代码如下: fdisk /dev/sdb n   add ...