python3写的简单本地文件上传服务器实例写的简单本地文件上传服务器实例
今天小编就为大家分享一篇python3写的简单本地文件上传服务器实例,具有很好的参考价值,希望对大家有所
帮助。一起跟随小编过来看看吧
python是个很好玩的东西?好吧我随口说的,反正因为各种原因(其实到底是啥我也不知道),简单的学习了下python,然后
写了一个上传文件上服务器的小玩具练手。
大概功能是这样:大概功能是这样:
1、获取本地文件列表(包括文件夹)
2、检查服务器上是否存在,不存在直接上传,存在的话,文件夹无视,文件比较大小,大小不一致则覆盖,最后检查服务器
上是否存在本地没有的文件,存在则删除
3、之后增加了忽略列表,忽略文件类型
4、然后增加了重启tomcat,但是这个功能未进行测试
大概就是这个样子,哦了,丢代码丢代码大概就是这个样子,哦了,丢代码丢代码
#!/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:
评论0