一.简介
用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