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