Python基于Python实现批量上传文件或目录到不同的Linux服务器

基于Python实现批量上传文件或目录到不同的Linux服务器

 

by:授客 QQ1033553122

 

实现功能 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:登录该主机的用户名

hostkeyhostkey

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 root@192.168.1.102:/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:要上传至服务器的本地文件

root@192.168.1.102:登陆服务器的用户名@服务器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相对于“根目录”的目录路径|需要上传到的服务器远程目录

 

注意:目录路径、文件路径,与远程目录之间以 | 分隔,

 

# 注释,注释会被程序自动忽略,可以用notepadultraEdit的列模式,批量编辑批量注释

 

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、改进一点

建议写成批处理

cd /d C:\Users\laiyu\PycharmProjects\autodeploy

python main.py

start C:\Users\laiyu\PycharmProjects\autodeploy\uploadresult/result_for_upload_success.txt

start C:\Users\laiyu\PycharmProjects\autodeploy\uploadresult/uploadresult/result_for_upload_failure.txt

 

源码下载地址

https://pan.baidu.com/s/1dEJpwrf

 

改进版(bug修复与改进)

[授客]基于Python实现批量上传文件或目录到不同的Linux服务器20170718.zip

 

posted @ 2017-07-16 13:15  授客  阅读(3315)  评论(0编辑  收藏  举报