python 实现远程上传文件夹
python2 upload.py "ip" "root" "password" "22" "Only Project DLL" "d:\ENZO\Publish\Wxcrm.Admin\bin\release\netcoreapp2.1\centos.7-x64\publish" "/mondao/deployment/wxcrm-admin"
#!/usr/bin/env python
import sys, time
import paramiko,datetime,os hostname=''
username='root'
password=''
port=22 def upload(local_dir, remote_dir, special_names):
try:
t=paramiko.Transport((hostname, port))
t.connect(username=username,password=password)
sftp=paramiko.SFTPClient.from_transport(t)
print 'upload file start %s ' % datetime.datetime.now()
for root,dirs,files in os.walk(local_dir):
for name in dirs:
local_path = os.path.join(root, name)
a = local_path.replace(local_dir,'').replace('\\', '/')
remote_path = remote_dir + a
try:
sftp.mkdir(remote_path)
print "mkdir path %s" % remote_path
except Exception,e:
print("dir path is exists: %s") % remote_path for filespath in files:
local_file = os.path.join(root,filespath)
a = local_file.replace(local_dir,'').replace('\\', '/')
remote_file = remote_dir + a
isSpecialFile = len(special_names)==0
if not isSpecialFile:
for special_name in special_names:
if special_name in local_file:
isSpecialFile = True
if isSpecialFile:
try:
sftp.put(local_file, remote_file)
except Exception,e:
sftp.mkdir(os.path.split(remote_file)[0])
sftp.put(local_file, remote_file)
print "upload %s to remote %s" % (local_file, remote_file)
print 'upload file success %s ' % datetime.datetime.now()
t.close()
except Exception,e:
print e if __name__=='__main__':
args = sys.argv[1:]
if not args:
print("not args")
sys.exit(1); hostname = args[0]
username = args[1]
password = args[2]
port = int(args[3])
type = args[4]
local_dir = args[5]
remote_dir = args[6] print("Paramaters:")
print("hostname: " + hostname)
print("username: " + username)
print("password: " + password)
print("port: " + str(port))
print("type: " + type)
print("local_dir: " + local_dir)
print("remote_dir: " + remote_dir) t = time.time() special_names = []
if type == "Project":
special_names = ["Wxcrm.Admin.", "wwwroot\js", "\config"]
elif type == "Only Project DLL":
special_names = ["Wxcrm.Admin."]
elif type == "Only Project JS":
special_names = ["wwwroot\js"]
else:
special_names = []
#local_dir=r'd:\ENZO\Publish\Wxcrm.Admin\bin\release\netcoreapp2.1\centos.7-x64\publish'
#remote_dir=r'/mondao/deployment/wxcrm-admin'
upload(local_dir, remote_dir, special_names) print("total run time:")
e = time.time()
print(e-t)
python 实现远程上传文件夹的更多相关文章
- Python基于Python实现批量上传文件或目录到不同的Linux服务器
基于Python实现批量上传文件或目录到不同的Linux服务器 by:授客 QQ:1033553122 实现功能 1 测试环境 1 使用方法 1 1. 编辑配置文件conf/rootpath_fo ...
- msysgit 上传文件夹,规范化的日常
在我们第一次成功的上传到github之后,要上传文件夹的我们要在msysgit里输入些什么呢? 选择要上传的文件夹前一项右键点击git bash here 进入msysgit后 首先初始化,输入 gi ...
- git如何上传文件夹
git是不支持上传空文件夹的,文件夹里面必须有文件才可以 1.本地仓库上传文件夹到远程 在本地仓库新建一个文件夹,如果里面没有文件,那么$ git push origin master 不能将文件夹p ...
- SFTP 上传文件夹
使用sftp上传文件夹时若使用如下命令并不work: put /media/Research/GWAS_Class/* Desktop/ 此时,需要添加一个参数 -r, 另外在目标文件夹下面建立一个同 ...
- 使用jQuery.FileUpload插件和服Backload组件自定义上传文件夹
在零配置情况下,文件的上传文件夹是根目录下的Files文件夹,如何自定义文件的上传文件夹呢? □ 在web.config中配置 1: <configuration> 2: <conf ...
- svs 在创建的时候 上传文件夹 bin obj 这些不要提交
svs 在创建的时候 上传文件夹 bin obj 这些不要提交 右键-去除版本控制并增加到忽略列表
- SpringBoot 上传文件夹
前端代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...
- oss上传文件夹-cloud2-泽优软件
泽优软件云存储上传控件(cloud2)支持上传整个文件夹,并在云空间中保留文件夹的层级结构,同时在数据库中也写入层级结构信息.文件与文件夹层级结构关系通过id,pid字段关联. 本地文件夹结构 文件 ...
- MVC文件上传05-使用客户端jQuery-File-Upload插件和服务端Backload组件自定义上传文件夹
在零配置情况下,文件的上传文件夹是根目录下的Files文件夹,如何自定义文件的上传文件夹呢? MVC文件上传相关兄弟篇: MVC文件上传01-使用jquery异步上传并客户端验证类型和大小 MVC文 ...
随机推荐
- Tomcat 启动很慢?
Tomcat 8启动很慢,在启动中, 发现加载如下类时很慢: org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom 原因 ...
- 【Shell】shell 判断文件夹或文件是否存在
1.文件夹不存在则创建,文件夹是directory if [ ! -d "/data/" ];then mkdir /data else echo "文件夹已经存在&qu ...
- Javascript 对象Object
1.new构造函数法 2.对象字面量 对象字面量很好理解,使用key/value的形式直接创建对象,简洁方便. 这种方式直接通过花括号将对象的属性包起来,使用key/value的方式创建对象属性, ...
- Nginx下载安装
系统环境:win7 nginx:1.11.4 1.下载Nginx 下载地址:http://nginx.org/en/download.html 2.将压缩包解压到相应位置 3.启动nginx服务,ng ...
- 错误 6 未能找到类型或命名空间名称“BLL”(是否缺少 using 指令或程序集引用?)
出现这个错误,要确保先引用BLL.dll, 如果引用之后还没有解决这个问题的话,确认一下程序集FrameWork版本与项目FrameWork版本一致.右击程序集属性可以更改.
- tomcat常用技巧
1. 修改Tomcat的名称 适用场景: 在测试服务器资源有限或是在本机服务器部署多套应用系统时,由于要启动多个TOMCAT服务,且TOMCAT服务没有用名称去区分,会造成维护使用上存在一定晨读的不方 ...
- 进程和程序(Process and Program)
原出处:http://oss.org.cn/kernel-book/ch04/4.1.htm ----------------------------------个人理解分割线------------ ...
- linux shell基础编程2
while循环 语法1: while [ 条件 ] do 命令序列 done 语法2: while read -r line do 命令序列 done (切记while和左中括号一定要有空格) 例子 ...
- 数组和矩阵(1)——Find the Duplicate Number
Given an array nums containing n + 1 integers where each integer is between 1 and n (inclusive), pro ...
- java面试知识
Java基础部分 https://www.cnblogs.com/xiaolovewei/p/9571770.html MySQL部分 https://www.cnblogs.com/xiaolove ...