天天看點

Python基于Python實作批量上傳檔案或目錄到不同的Linux伺服器

基于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

如下截圖,配置需要上傳檔案、目錄(包括)的伺服器主機資訊

Python基于Python實作批量上傳檔案或目錄到不同的Linux伺服器

說明:

[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

分别記錄了運作成功和失敗的檔案資訊

Python基于Python實作批量上傳檔案或目錄到不同的Linux伺服器

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群  

Python基于Python實作批量上傳檔案或目錄到不同的Linux伺服器
Python基于Python實作批量上傳檔案或目錄到不同的Linux伺服器
Python基于Python實作批量上傳檔案或目錄到不同的Linux伺服器