一.简介

    用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