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文 ...
随机推荐
- angular 兼容IE浏览器
安装classlist.babel-polyfill: npm install --save classlist.js npm install --save babel-polyfill 修改 src ...
- HDU 5313——Bipartite Graph——————【二分图+dp+bitset优化】
Bipartite Graph Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)T ...
- SpringBoot集成JWT 实现接口权限认证
JWT介绍 Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的, 特别适用于分布式站点 ...
- linux查看占用内存最多的程序
1.linux查看占用内存最多的程序 ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head 2.查看占用cpu最多的程序 ps aux|head ...
- 【VirtualBox】快照
一.快照备份 虚拟机系统快照下来,以后就可以恢复到快照之前的系统 右上角->虚拟电脑工具->快照
- PAT 1025 PAT Ranking
#include <cstdio> #include <cstdlib> #include <vector> #include <cstring> #i ...
- PAT 1083 List Grades
#include <cstdio> #include <cstdlib> using namespace std; class Stu { public: ]; ]; }; i ...
- CRM——权限
一.引入权限组件 1.引入权限组件rbac 拷贝之前写好的rbac应用到CRM_demo项目下. 在settings中注册rbac的app: INSTALLED_APPS = [ 'django.co ...
- vim右键粘贴 等杂
putty连上linux,vim编辑个文件,我去,右键不能用用上下面的命令,就好了. set mouse-=a 今天发现mysql倒入utf-8的文件网站显示出来都是乱码,不过用utf-8的控制台看是 ...
- java 理解有符号数和无符号数
转至:http://jinguo.iteye.com/blog/212049 理解有符号数和无符号数负数在计算机中如何表示呢? 这一点,你可能听过两种不同的回答. 一种是教科书,它会告诉你:计算机用“ ...