基于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
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:相对于“根目录”的目录路径|需要上传到的服务器远程目录


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

# 注释,注释会被程序自动忽略,可以用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、改进一点

建议写成批处理

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

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

  1. Linux命令之rz - 批量上传文件,简单易用(转载)

    用途说明 rz命令能够批量上传文件,当然也可上传单个文件啦.使用的协议是古老的ZMODEM协议,尽管协议古老,但毫不影响的简单易用的特性.一般情 况我们要上传文件到Linux系统,要么使用ftp(还得 ...

  2. 转 Android网络编程之使用HttpClient批量上传文件 MultipartEntityBuilder

    请尊重他人的劳动成果,转载请注明出处:Android网络编程之使用HttpClient批量上传文件 http://www.tuicool.com/articles/Y7reYb 我曾在<Andr ...

  3. 不带插件 ,自己写js,实现批量上传文件及进度显示

    今天接受项目中要完成文件批量上传文件而且还要显示上传进度,一开始觉得这个应该不是很麻烦,当我在做的时候遇到了很多问题,很头疼啊. 不过看了别人写的代码,自己也测试过,发现网上好多都存在一些问题,并不是 ...

  4. input file multiple 批量上传文件

    这几天维护系统,有一个批量上传文件功能,出现了一点小问题 我的笔记本选择要上传的文件很正常 但在测试环境上,别人的电脑上,选择上传文件之后 一开始,以为是代码问题,网上找了很多的资料,但还是没用,然后 ...

  5. django 基于form表单上传文件和基于ajax上传文件

    一.基于form表单上传文件 1.html里是有一个input type="file" 和 ‘submit’的标签 2.vies.py def fileupload(request ...

  6. 使用 sendKeys(keysToSend) 批量上传文件

    未经允许,禁止转载!!! 在selenium里面处理文件上传的时候可以使用sendKeys(keysToSend) 上传文件 例如: element.sendKeys(“C:\\test\\uploa ...

  7. TP3.2批量上传文件(图片),解决同名冲突问题

    1.html <form action="{:U('Upload/index')}" enctype="multipart/form-data" meth ...

  8. 用Azure CLI批量上传文件

    在Windows环境下,我们可以使用AzCopy批量上传文件.其效率和传输速率都是非常快的. 在Linux或MacOS环境下,可以使用Azure的CLI实现批量文件的上传. 下面的脚本可以实现此功能. ...

  9. Java Miniui实现批量上传文件demo 201906221520

    可能需要的jar包: 需要miniui(类似easyui). Test2019062201.jsp <%@ page language="java" contentType= ...

随机推荐

  1. centos6安装cas5

    cas是Central Authentication Service的缩写,中文为中央认证服务,在这里我就不说理论了,在公司里项目研发需要cas平台,所以经过两天研究,搞了一个简化版的cas服务,有不 ...

  2. C语言数组一种巧妙的使用方式

    作为计算机一种比较古老的语言,它并没有随着岁月老去,而是仍旧在整个领域发挥出耀眼的光芒,就像写作,有很多光芒万丈的句子值得我们去珍藏,今天就遇到了个比较巧妙的数组使用方法,做个记录,以供后续使用. # ...

  3. 高清语音技术(WBS)及其在手机和蓝牙耳机中的实现

    高清语音也被称为宽带语音,是一种能为蜂窝网络.移动电话和无线耳机传输高清.自然语音质量的音频技术.与传统的窄带电话相比,高清语音很大程度上提高了语音质量,减少了听觉负担. 通信产业链上的所有网络和设备 ...

  4. [原创] 详解云计算网络底层技术——虚拟网络设备 tap/tun 原理解析

    本文首发于我的公众号 Linux云计算网络(id: cloud_dev),专注于干货分享,号内有 10T 书籍和视频资源,后台回复「1024」即可领取,欢迎大家关注,二维码文末可以扫. 在云计算时代, ...

  5. 给大家一些改善 Python 程序的 91 个建议

    读了一本还不错的书「编写高质量代码改善 Python 程序的 91 个建议」,大多数的建议是真心不错,我虽然写python也有3年多了,但是有些地方确实没去注意过,特地整理了一下,给大家参考. 我已经 ...

  6. Zookeeper-watcher机制源码分析(一)

    Watcher的基本流程 ZooKeeper 的 Watcher 机制,总的来说可以分为三个过程:客户端注册 Watcher.服务器处理 Watcher 和客户端回调 Watcher 客户端注册wat ...

  7. select实现高并发服务器

    前言:周末学了两天网络编程,把之前的不懂一些问题基本掌握了,例如TCP状态转换图.close和shutdown函数的区别.select函数等,今天分享给大家. 一.网络编程基础知识 在写代码之前,需要 ...

  8. SpringCloud2.0入门3-新的eureka依赖

    前言 Springboot2.0推出有一段时间了,是要学习1.5+还是从2.0开始?犹豫的原因是资料不全,目前现有的资料大部分是1.0的.但作为学习者,肯定要学习最新的.不如,先试试. 搭建Eurek ...

  9. C# 锁系列目录

    1.lock.Monitor lock(obj){} 编译之后是如下代码 Monitor.Enter(obj); try { // } finally { Monitor.Exit(obj); } 2 ...

  10. Logback中如何自定义灵活的日志过滤规则

    当我们需要对日志的打印要做一些范围的控制的时候,通常都是通过为各个Appender设置不同的Filter配置来实现.在Logback中自带了两个过滤器实现:ch.qos.logback.classic ...