python上传本地文件_python3写的简单本地文件上传服务器实例

#!/usr/bin/env python3

# -*- coding: utf-8 -*-

import os

import os.path

import paramiko

import datetime

import re

# 配置属性

config = {

#本地项目路径

'local_path' : '',

# 服务器项目路径

'ssh_path' : '',

# 项目名

'project_name' : '',

# 忽视列表

'ignore_list' : [],

# ssh地址、端口、用户名、密码

'hostname' : '',

'port' : 22,

'username' : '',

'password' : '',

# 是否强制更新

'mandatory_update' : False,

# 更新完成后是否重启tomcat

'restart_tomcat' : False,

# tomcat bin地址

'tomcat_path' : '',

# 被忽略的文件类型

'ignore_file_type_list' : []}

# 检查文件夹是否存在,不存在则创建

def check_folder(path):

stdin, stdout, stderr = ssh.exec_command('find ' + path)

result = stdout.read().decode('utf-8')

if len(result) == 0 :

print('目录 %s 不存在,创建目录' % path)

ssh.exec_command('mkdir ' + path)

print('%s 创建成功' % path)

return 1

else:

print('目录 %s 已存在' % path)

return 0

# 检查文件是否存在,不存在直接上传,存在检查大小是否一样,不一样则上传

def check_file(local_path, ssh_path):

# 检查文件是否存在,不存在直接上传

stdin, stdout, stderr = ssh.exec_command('find ' + ssh_path)

result = stdout.read().decode('utf-8')

if len(result) == 0 :

sftp.put(local_path,ssh_path)

print('%s 上传成功' % (ssh_path))

return 1

else:

# 存在则比较文件大小

# 本地文件大小

lf_size = os.path.getsize(local_path)

# 目标文件大小

stdin, stdout, stderr = ssh.exec_command('du -b ' + ssh_path)

result = stdout.read().decode('utf-8')

tf_size = int(result.split('t')[0])

print('本地文件大小为:%s,远程文件大小为:%s' % (lf_size, tf_size))

if lf_size == tf_size:

print('%s 大小与本地文件相同,不更新' % (ssh_path))

return 0

else:

sftp.put(local_path,ssh_path)

print('%s 更新成功' % (ssh_path))

return 1

# 上传流程开始

print('上传开始')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值