Python基于Python实现批量上传文件或目录到不同的Linux服务器
基于Python实现批量上传文件或目录到不同的Linux服务器
by:授客 QQ:1033553122
1、 编辑配置文件conf/rootpath_for_doc.conf 1
2、 编辑配置文件conf/host_config.conf 2
3、 编辑配置文件conf/doc_for_upload.txt 3
实现功能
批量上传文件、目录(包括该目录下的所有文件,子目录及其文件)到不同的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服务器的更多相关文章
- Linux命令之rz - 批量上传文件,简单易用(转载)
用途说明 rz命令能够批量上传文件,当然也可上传单个文件啦.使用的协议是古老的ZMODEM协议,尽管协议古老,但毫不影响的简单易用的特性.一般情 况我们要上传文件到Linux系统,要么使用ftp(还得 ...
- 转 Android网络编程之使用HttpClient批量上传文件 MultipartEntityBuilder
请尊重他人的劳动成果,转载请注明出处:Android网络编程之使用HttpClient批量上传文件 http://www.tuicool.com/articles/Y7reYb 我曾在<Andr ...
- 不带插件 ,自己写js,实现批量上传文件及进度显示
今天接受项目中要完成文件批量上传文件而且还要显示上传进度,一开始觉得这个应该不是很麻烦,当我在做的时候遇到了很多问题,很头疼啊. 不过看了别人写的代码,自己也测试过,发现网上好多都存在一些问题,并不是 ...
- input file multiple 批量上传文件
这几天维护系统,有一个批量上传文件功能,出现了一点小问题 我的笔记本选择要上传的文件很正常 但在测试环境上,别人的电脑上,选择上传文件之后 一开始,以为是代码问题,网上找了很多的资料,但还是没用,然后 ...
- django 基于form表单上传文件和基于ajax上传文件
一.基于form表单上传文件 1.html里是有一个input type="file" 和 ‘submit’的标签 2.vies.py def fileupload(request ...
- 使用 sendKeys(keysToSend) 批量上传文件
未经允许,禁止转载!!! 在selenium里面处理文件上传的时候可以使用sendKeys(keysToSend) 上传文件 例如: element.sendKeys(“C:\\test\\uploa ...
- TP3.2批量上传文件(图片),解决同名冲突问题
1.html <form action="{:U('Upload/index')}" enctype="multipart/form-data" meth ...
- 用Azure CLI批量上传文件
在Windows环境下,我们可以使用AzCopy批量上传文件.其效率和传输速率都是非常快的. 在Linux或MacOS环境下,可以使用Azure的CLI实现批量文件的上传. 下面的脚本可以实现此功能. ...
- Java Miniui实现批量上传文件demo 201906221520
可能需要的jar包: 需要miniui(类似easyui). Test2019062201.jsp <%@ page language="java" contentType= ...
随机推荐
- 机器学习入门07 - 验证 (Validation)
原文链接:https://developers.google.com/machine-learning/crash-course/validation/ 1- 检查直觉 将一个数据集划分为训练集和测试 ...
- Scala - 快速学习01 - Scala简介
Scala简介 Scala(Scalable Language)是一门多范式(multi-paradigm)编程语言,Scala的设计吸收借鉴了许多种编程语言的思想,具备面向对象编程.函数式编程等特性 ...
- 浅谈HTTP Keep-Alive
背景是一次线上故障 项目类型vue ssr 与server的数据交互用的http内网域名方案 在5月发生了一次线上CPU100%的问题,直接导致了NodeServer 500. 最终解决办法是: 1. ...
- 为什么推荐前端使用Vue.js
MVVM 是Model-View-ViewModel 的缩写,它是一种基于前端开发的架构模式,其核心是提供对View 和 ViewModel 的双向数据绑定,这使得ViewModel 的状态改变可以自 ...
- HBase——HMaster启动之一(HMaster的构建)
首先,让我们来到HMaster的main方法.我们今天的流程就从这里开始. 我们需要注意,下图所示的tool的类型就是HMasterCommandLine. 接下来,让我们来到HMasterComma ...
- redis 删除大key集合的方法
redis大key,这里指的是大的集合数据类型,如(set/hash/list/sorted set),一个key包含很多元素.由于redis是单线程,在删除大key(千万级别的set集合)的时候,或 ...
- 引入CSS的三种方式
虽然入职已经大半年,并自诩前端工程师,但是我真的不会……(有一种我有罪我该死的感觉 从CSS 样式代码插入的形式来看基本可以分为以下3种:内联式.嵌入式和外部式三种. 1.内联式 内联式css样式表就 ...
- MapReduce实现ReduceSideJoin操作
本文转载于:http://blog.csdn.net/xyilu/article/details/8996204 一.准备两张表以及对应的数据 (1)m_ys_lab_jointest_a(以下简称表 ...
- 项目ITP(三) 玩玩 服务端 到 app端
前言 系列文章:[传送门] 泡泡脚,写写博客,规律生活,睡个好觉,待会看会书. 正文 上面讲了二维码生成,及 手机端扫一扫,大家有兴趣去看看. 今天我们讲一下,百度云推送平台. 每天想着问题,问题只会 ...
- MySQL导入导出实践
最近一次数据迁移,需要将MySQL的数据导出.处理后导入到新表和ES.这里做个简单记录,方便后续查询. 注: 为了写文章方便及隐私安全,实际内容会有所简化.例如表结构简化.数据库连接部分全部用 xxx ...