基于Python實作批量上傳檔案或目錄到不同的Linux伺服器
by:授客 QQ:1033553122
實作功能 1
測試環境 1
使用方法 1
1、 編輯配置檔案conf/rootpath_for_doc.conf 1
2、 編輯配置檔案conf/host_config.conf 2
3、 編輯配置檔案conf/doc_for_upload.txt 3
4、 運作程式 4
5、 檢視結果 4
6、 改進一點 5
源碼下載下傳位址 5
實作功能
批量上傳檔案、目錄(包括該目錄下的所有檔案,子目錄及其檔案)到不同的Linux伺服器
測試環境
Win7 64位
Python 3.3.2
pscp 64位
下載下傳位址:
https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
網盤下載下傳位址:
https://pan.baidu.com/s/1qYFft4g
使用方法
1、編輯配置檔案conf/rootpath_for_doc.conf
[DOCROOTPATH]
rootpath_for_doc = D:\mysvn\
說明:
rootpath_for_doc設定一個目錄路徑,作為配置檔案所在跟目錄,本文中以以下目錄結構為例子
D:\mysvn
└─myfolder
│ SVNClient.py
│
├─mydir
│ newfile_test.txt
└─testdir
t.txt
2、編輯配置檔案conf/host_config.conf
如下截圖,配置需要上傳檔案、目錄(包括)的伺服器主機資訊

說明:
[192.168.1.102]: [需要上傳檔案的目标主機ip]
host:需要上傳檔案的目标主機ip
username:登入該主機的使用者名
hostkey:hostkey
password:登入密碼
port:端口号
remark:補充說明,比如該主機是作啥用的
hostkey的或許方式如下:
進入到項目檔案中的pscp目錄
cd /d C:\Users\laiyu\PycharmProjects\autodeploy\pscp
執行以下指令
pscp.exe -v -P 22 -pw huozhe -r D:\mysvn\\myfolder\SVNClient.py
[email protected]:/root/testdir
Connecting to 192.168.1.102 port 22
……(略)
Host key fingerprint is:
ssh-rsa 2048
c2:52:16:3f:24:37:b8:65:ec:9b:26:e5:04:e8:1d:a9
The server's host key is not cached in the registry. You
have no guarantee that the server is the computer you
think it is.
如上圖,帶背景色,加粗部分的内容,就是hostkey
選項說明:
-P 22:端口
-pw :登入密碼
D:\mysvn\\myfolder\SVNClient.py:要上傳至伺服器的本地檔案
[email protected]:登陸伺服器的使用者名@伺服器ip
/root/testdir:要上傳到伺服器的目标目錄
3、編輯配置檔案conf/conf/doc_for_upload.txt
# 測試執行個體名(#
代表注釋
[192.168.1.102]
myfolder\SVNClient.py|/root/testdir
myfolder
|
/root/testdir
# wx
[10.202.94.176]
#pullGit.bat
|
/home/appdeploy/
[10.202.94.177]
#Dir|/home/appdeploy/
[192.168.1.102]:要上傳檔案至目标主機ip
myfolder\SVNClient.py|/root/testdir:相對于“根目錄”的檔案路徑|需要上傳到的伺服器遠端目錄
此處,根目錄,即conf/rootpath_for_doc.conf中配置的跟目錄rootpath_for_doc值
myfolder|/root/testdir:相對于“根目錄”的目錄路徑|需要上傳到的伺服器遠端目錄
注意:目錄路徑、檔案路徑,與遠端目錄之間以 | 分隔,
# 注釋,注釋會被程式自動忽略,可以用notepad,ultraEdit的列模式,批量編輯批量注釋
4、運作程式
進入到項目跟目錄
cd /d C:\Users\laiyu\PycharmProjects\autodeploy
python main.py
5、檢視結果
uploadresult/result_for_upload_success.txt
uploadresult/result_for_upload_failure.txt
分别記錄了運作成功和失敗的檔案資訊
6、改進一點
建議寫成批處理
start
C:\Users\laiyu\PycharmProjects\autodeploy\uploadresult/result_for_upload_success.txt
C:\Users\laiyu\PycharmProjects\autodeploy\uploadresult/uploadresult/result_for_upload_failure.txt
源碼下載下傳位址
https://pan.baidu.com/s/1dEJpwrf
改進版(bug修複與改進)
[授客]基于Python實作批量上傳檔案或目錄到不同的Linux伺服器20170718.zip
作者:授客
QQ:1033553122
全國軟體測試QQ交流群:7156436
Git位址:https://gitee.com/ishouke
友情提示:限于時間倉促,文中可能存在錯誤,歡迎指正、評論!
作者五行缺錢,如果覺得文章對您有幫助,請掃描下邊的二維碼打賞作者,金額随意,您的支援将是我繼續創作的源動力,打賞後如有任何疑問,請聯系我!!!
微信打賞
支付寶打賞 全國軟體測試交流QQ群