python上传本地文件_python3写的简单本地文件上传服务器实例
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import os
import os.path
import paramiko
import datetime
import re
# 配置屬性
config = {
#本地項(xiàng)目路徑
'local_path' : '',
# 服務(wù)器項(xiàng)目路徑
'ssh_path' : '',
# 項(xiàng)目名
'project_name' : '',
# 忽視列表
'ignore_list' : [],
# ssh地址、端口、用戶名、密碼
'hostname' : '',
'port' : 22,
'username' : '',
'password' : '',
# 是否強(qiáng)制更新
'mandatory_update' : False,
# 更新完成后是否重啟tomcat
'restart_tomcat' : False,
# tomcat bin地址
'tomcat_path' : '',
# 被忽略的文件類型
'ignore_file_type_list' : []}
# 檢查文件夾是否存在,不存在則創(chuàng)建
def check_folder(path):
stdin, stdout, stderr = ssh.exec_command('find ' + path)
result = stdout.read().decode('utf-8')
if len(result) == 0 :
print('目錄 %s 不存在,創(chuàng)建目錄' % path)
ssh.exec_command('mkdir ' + path)
print('%s 創(chuàng)建成功' % 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)
# 目標(biāo)文件大小
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,遠(yuǎn)程文件大小為:%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('上傳開始')
總結(jié)
以上是生活随笔為你收集整理的python上传本地文件_python3写的简单本地文件上传服务器实例的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: proteus虚拟终端窗口不显示_Lin
- 下一篇: websocket python爬虫_p